h&      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""##################################################################################################################################################################################################################################################################################################################################################################################################################################$$$$$$'% Safe-InferredK Safe-Inferred6;N| sdl2Error details about a failure to call an SDL routine. Almost all functions in this library have the ability to produce exceptions of this type. Inspection should help you learn more about what has gone wrong.sdl29A call to a low-level SDL C function failed unexpectedly.sdl29An SDL C function was called with an unexpected argument.sdl2A hint was attempted to be set, but SDL does not know about this hint.sdl28The Haskell routine that was trying to call a C functionsdl24The C function that was called and produced an errorsdl2*SDL's understanding of what has gone wrongsdl2*The argument that SDL failed to understandsdl2The hint that could not be set   Safe-InferredN  (C) 2012-2015 Edward Kmett BSD-style (see the file LICENSE)Edward Kmett  experimental non-portable Trustworthy689:;P!sdl2A 4-dimensional vector.#sdl2A 3-dimensional vector%sdl2A 2-dimensional vectorpure 1 :: V2 IntV2 1 1V2 1 2 + V2 3 4V2 4 6V2 1 2 * V2 3 4V2 3 8 sum (V2 1 2)3'sdl2A handy wrapper to help distinguish points from vectors at the type level!"#$%&'('(%&#$!" Safe-InferredP Safe-Inferred6;^I    Safe-Inferred6f sdl2 Note: the  is only valid until the next SDL function call. If you need to preserve the error message, make a copy of it.   Safe-Inferredf   Safe-Inferredf   Safe-Inferred6jsdl2*The storage associated with the resulting  has to be released with  when it is no longer required.sdl2*The storage associated with the resulting  has to be released with  when it is no longer required.sdl2*The storage associated with the resulting  has to be released with  when it is no longer required.sdl2*The storage associated with the resulting  has to be released with  when it is no longer required.sdl2*The storage associated with the resulting  has to be released with  when it is no longer required.sdl2*The storage associated with the resulting  has to be released with  when it is no longer required.    Safe-Inferredp*  Safe-Inferredph(( Safe-Inferredq. Safe-InferredqNonerM Safe-Inferredt! Safe-Inferredt Safe-InferreduZ& Safe-Inferredx    Safe-Inferred"6; sdl20Information about how much charge a battery has.sdl2(How many seconds of battery life is leftsdl2!The percentage of battery chargedsdl2>Information on battery consumption for battery powered devicessdl2'The battery is currently being drained.sdl2The battery is fully charged.sdl25The device is plugged in and the battery is charging.sdl2=Information about the power supply for the user's environmentsdl2-The user is on a battery powered device. See  for charge information, and  for charge informationsdl2/The user is on a device connected to the mains.sdl21SDL could not determine the power for the device.sdl2Current power supply details.Throws  SDLException2 if the current power state can not be determined.See  (https://wiki.libsdl.org/SDL_GetPowerInfoSDL_GetPowerInfo for C documentation.   Safe-Inferred6;sdl22An SDL rendering device. This can be created with !'.   Safe-Inferred6;4 sdl23Information about a key press or key release event.sdl2 The keyboard sdl2-SDL's virtual key representation for this keysdl2A set of modifiers that were held at the time this data was generatedsdl2:Information about which keys are currently held down. Use  to generate this information.sdl2Get the current key modifier state for the keyboard. The key modifier state is a mask special keys that are held down.See  'https://wiki.libsdl.org/SDL_GetModStateSDL_GetModState for C documentation.sdl2Set the rectangle used to type text inputs and start accepting text input events.See  *https://wiki.libsdl.org/SDL_StartTextInputSDL_StartTextInput for C documentation.sdl2%Stop receiving any text input events.See  )https://wiki.libsdl.org/SDL_StopTextInputSDL_StopTextInput for C documentation.sdl27Check whether the platform has screen keyboard support.See  4https://wiki.libsdl.org/SDL_HasScreenKeyboardSupportSDL_HasScreenKeyboardSupport for C documentation.sdl2Check whether the screen keyboard is shown for the given window.See  1https://wiki.libsdl.org/SDL_IsScreenKeyboardShownSDL_IsScreenKeyboardShown for C documentation.sdl2Get a human-readable name for a scancode. If the scancode doesn't have a name this function returns the empty string.See  +https://wiki.libsdl.org/SDL_GetScancodeNameSDL_GetScancodeName for C documentation.sdl24Get a snapshot of the current state of the keyboard.*This computation generates a mapping from  to ' - evaluating the function at specific s will inform you as to whether or not that key was held down when  was called.See  ,https://wiki.libsdl.org/SDL_GetKeyboardStateSDL_GetKeyboardState for C documentation.  Safe-Inferred   Safe-Inferred"9sdl23An absolute path to the application data directory.4The path is guaranteed to end with a path separator.Throws  SDLException on failure, or if the platform does not implement this functionality.sdl2A path to a unique per user and per application directory for the given organization and application name, intended for writing preferences and other personal files.4The path is guaranteed to end with a path separator.You should assume the path returned by this function is the only safe place to write files to.Throws  SDLException on failure. Safe-Inferred"%&)*/5689:;1sdl2?An abstract description of an audio driver on the host machine.sdl2Opened devices are always  or  in normal circumstances. A failing device may change its status to 5 at any time, and closing a device will progress to  too.sdl2The  is playing.sdl2The  is paused.sdl2The  is stopped.sdl2Whether to allow an  to play sound or remain paused.sdl2 Pause the ,, which will stop producing/capturing audio.sdl2 Resume the .sdl2.Whether a device should be locked or unlocked.sdl2=Lock the device, preventing the callback from producing data.sdl22Unlock the device, resuming calls to the callback.sdl2Used to indicate to SDL whether it is allowed to open other audio devices (if a property is marked as a 5) or if it should fail if the device is unavailable ().sdl2 this exact property value, and fail if a matching audio device cannot be found.sdl2 this property value, but allow other audio devices to be opened.sdl2How you intend to use an sdl2,The device will be used for sample playback.sdl2+The device will be used for sample capture.sdl2) is the concrete specification of how an ! was sucessfully opened. Unlike , which specifies what you want,  specifies what you have.sdl2"DSP frequency (samples per second)sdl2Audio data formatsdl2!Number of separate sound channelssdl2$Calculated udio buffer silence valuesdl2)Audio buffer size in samples (power of 2)sdl2%Calculated audio buffer size in bytessdl2:The function to call when the audio device needs more datasdl2+How many channels audio should be played onsdl2A single speaker configurationsdl2&A traditional left/right stereo systemsdl2 1 surround soundsdl2Information about what format an audio bytestream is. The type variable t indicates the type used for audio buffer samples. It is determined by the choice of the provided  SampleBitSize. For example: AudioFormat UnsignedInteger Sample8Bit Native :: AudioFormat Word8Indicating that an 8-bit audio format in the platforms native endianness uses a buffer of  values.sdl2/An open audio device. These can be created via  and should be closed with sdl2A specification to , indicating the desired output format. Note that many of these properties are , meaning that you can choose whether or not SDL should interpret your specification as an unbreakable request (), or as an approximation .sdl2$The output audio frequency in herts.sdl2The format of audio that will be sampled from the output buffer.sdl2The amount of audio channels.sdl2Output audio buffer size in samples. This should be a power of 2.sdl2A callback to invoke whenever new sample data is required. The callback will be passed a single % that must be filled with audio data.sdl2!How you intend to use the opened - - either for outputting or capturing audio.sdl2The name of the  that should be opened. If , any suitable  will be used.sdl2%Attempt to open the closest matching , as specified by the given .See  +https://wiki.libsdl.org/SDL_OpenAudioDeviceSDL_OpenAudioDevice for C documentation.sdl2See  ,https://wiki.libsdl.org/SDL_CloseAudioDeviceSDL_CloseAudioDevice for C documentation.sdl2Enumerate all s attached to this system, that can be used as specified by the given . SDL cannot always guarantee that this list can be produced, in which case  will be returned.sdl2Lock an  such that its associated callback will not be called until the device is unlocked.sdl2 Change the playback state of an .sdl2Query the state of an .sdl2"Get the human readable name of an sdl2Obtain a list of all possible audio drivers for this system. These drivers can be used to specificially initialize the audio system.sdl2;Explicitly initialize the audio system against a specific . Note that most users will not need to do this, as the normal initialization routines will already take care of this for you.sdl2Query SDL for the name of the currently initialized audio driver, if possible. This will return # if no driver has been initialized. Safe-Inferred"6;sdl2Initializes SDL and the given subsystems. Do not call any SDL functions prior to this one, unless otherwise documented that you may do so.You may call this function again with additional subsystems to initialize.Throws () if initialization fails.sdl2Equivalent to  [ .. ].sdl2Quit and shutdown SDL, freeing any resources that may have been in use. Do not call any SDL functions after you've called this function, unless otherwise documented that you may do so.sdl2The major, minor, and patch versions of the SDL library linked with. Does not require initialization.   Safe-Inferred )*6;%sdl2How to deal with setting hints when an existing override or environment variable is present.sdl2%Low priority, used for default valuessdl2Medium prioritysdl2 High prioritysdl2The : type exports a well-typed interface to SDL's concept of  %https://wiki.libsdl.org/CategoryHintshints$. This type has instances for both  and 4, allowing you to get and set hints. Note that the  interface is fairly relaxed - if a hint cannot be set, the failure will be silently discarded. For more feedback and control when setting hints, see .sdl2A hint that specifies which shader compiler to preload when using the Chrome ANGLE binaries. By default d3dcompiler_46.dll will be used.sdl2Use d3dcompiler_46.dll, best for Vista or latersdl2Use d3dcompiler_43.dll for XP supportsdl2Do not load any library, useful if you compiled ANGLE from source and included the compiler in your binariessdl2A hint that specifies whether sync to vertical refresh is enabled or disabled to avoid tearing. By default SDL uses the flag passed into calls to create renderers.sdl2A hint that specifies scaling quality. By default nearest pixel sampling is used.sdl2Nearest pixel samplingsdl23linear filtering (supported by OpenGL and Direct3D)sdl2-Anisotropic filtering (supported by Direct3D)sdl2A hint that specifies whether the OpenGL render driver uses shaders. By default shaders are used if OpenGL supports them.sdl2Disable shaderssdl2%Enable shaders, if they are availablesdl2A hint that specifies which render driver to use. By default the first one in the list that is available on the current platform is chosen.sdl2A hint that specifies whether relative mouse mode is implemented using mouse warping. By default SDL will use raw input for relative mouse modesdl2&Relative mouse mode uses the raw inputsdl2&Relative mouse mode uses mouse warpingsdl2A hint that specifies whether ctrl+click should generate a right-click event on Mac. By default holding ctrl while left clicking will not generate a right click event when on Mac.sdl2Disable emulating right clicksdl2Enable emulating right clicksdl2A hint that specifies how 3D acceleration is used to accelerate the SDL screen surface. By default SDL tries to make a best guess whether to use acceleration or not on each platform.sdl2Disable 3D accelerationsdl22Enable 3D acceleration, using the default renderersdl2%Enable 3D acceleration using Direct3Dsdl2#Enable 3D acceleration using OpenGLsdl2%Enable 3D acceleration using OpenGLESsdl2&Enable 3D acceleration using OpenGLES2sdl2/Enable 3D acceleration using software renderingsdl2A hint that specifies whether the Android/iOS built-in accelerometer should be listed as a joystick device, rather than listing actual joysticks only. By default SDL will list real joysticks along with the accelerometer as if it were a 3 axis joystick.sdl23List only real joysticks and accept input from themsdl2List real joysticks along with the accelerometer as if it were a 3 axis joystick (the default)sdl2Set the value of a hint, applying priority rules for when there is a conflict. Ordinarily, a hint will not be set if there is an existing override hint or environment variable that takes precedence.sdl2Retrieve and map the current value associated with the given hint.55 Safe-Inferred"6;x sdl2A timer created by . This  can be removed with .sdl2A  is called with the interval size of the callback. It can return information as to whether or not the timer should continue to exist.sdl2 allows a callback to inform SDL if the timer should be retriggered or cancelledsdl2Get the current state of an axis control on a game controller.See  1https://wiki.libsdl.org/SDL_GameControllerGetAxisSDL_GameControllerGetAxis for C documentation.sdl27Get the current state of a button on a game controller.See  3https://wiki.libsdl.org/SDL_GameControllerGetButtonSDL_GameControllerGetButton for C documentation.sdl2The device to open. Use  to find JoystickDevicess00 Safe-Inferred"6;sdl21The swap interval for the current OpenGL context.sdl2#No vertical retrace synchronizationsdl29The buffer swap is synchronized with the vertical retracesdl2A created OpenGL context.sdl2=The mode a driver should use when creating an OpenGL context.sdl22A normal profile with no special debugging supportsdl2>Use a debug context, allowing the usage of extensions such as GL_ARB_debug_outputsdl2The profile a driver should use when creating an OpenGL context.sdl2Use the OpenGL core profile, with a given major and minor versionsdl2Use the compatibilty profile with a given major and minor version. The compatibility profile allows you to use deprecated functions such as immediate modesdl2*Use an OpenGL profile for embedded systemssdl2=Configuration used when creating an OpenGL rendering context.sdl2 Defaults to  8 8 8 0.sdl2 Defaults to 24.sdl2 Defaults to 8.sdl2 Defaults to 1.sdl2 Defaults to   2 1.sdl2A set of default options for   =  {  = V4 8 8 8 0 ,  = 24 ,  = 8 ,  = 1 ,  =   2 1 } sdl2Create a new OpenGL context and makes it the current context for the window.Throws  SDLException if the window wasn't configured with OpenGL support, or if context creation fails.See  ,https://wiki.libsdl.org/SDL_GL_CreateContextSDL_GL_CreateContext for C documentation.sdl2=Set up an OpenGL context for rendering into an OpenGL window.Throws  SDLException on failure.See  *https://wiki.libsdl.org/SDL_GL_MakeCurrentSDL_GL_MakeCurrent for C documentation.sdl2 Delete the given OpenGL context.You must make sure that there are no pending commands in the OpenGL command queue, the driver may still be processing commands even if you have stopped issuing them!The glFinish command will block until the command queue has been fully processed. You should call that function before deleting a context.See  ,https://wiki.libsdl.org/SDL_GL_DeleteContextSDL_GL_DeleteContext for C documentation.sdl2Replace the contents of the front buffer with the back buffer's. The contents of the back buffer are undefined, clear them with glClear- or equivalent before drawing to them again.See  )https://wiki.libsdl.org/SDL_GL_SwapWindowSDL_GL_SwapWindow for C documentation.sdl2Copy a portion of the texture to the current rendering target.sdl2Copy a portion of the texture to the current rendering target, optionally rotating it by angle around the given center and also flipping it top-bottom and/or left-right.sdl2?Draw a line between two points on the current rendering target.sdl2Draw a series of connected lines on the current rendering target.sdl2-Draw a point on the current rendering target.sdl2Copy a portion of the texture to the current rendering target.See  &https://wiki.libsdl.org/SDL_RenderCopySDL_RenderCopy for C documentation.sdl2Copy a portion of the texture to the current rendering target, optionally rotating it by angle around the given center and also flipping it top-bottom and/or left-right.See  (https://wiki.libsdl.org/SDL_RenderCopyExSDL_RenderCopyEx for C documentation.sdl2,Draw a line on the current rendering target.See  *https://wiki.libsdl.org/SDL_RenderDrawLineSDL_RenderDrawLine for C documentation.sdl2Draw a series of connected lines on the current rendering target.See  +https://wiki.libsdl.org/SDL_RenderDrawLinesSDL_RenderDrawLines for C documentation.sdl2-Draw a point on the current rendering target.See  +https://wiki.libsdl.org/SDL_RenderDrawPointSDL_RenderDrawPoint for C documentation.sdl25Draw multiple points on the current rendering target.See  ,https://wiki.libsdl.org/SDL_RenderDrawPointsSDL_RenderDrawPoints for C documentation.sdl2Copy an existing surface into a new one that is optimized for blitting to a surface of a specified pixel format.This function is used to optimize images for faster repeat blitting. This is accomplished by converting the original and storing the result as a new surface. The new, optimized surface can then be used as the source for future blits, making them faster.See  *https://wiki.libsdl.org/SDL_ConvertSurfaceSDL_ConvertSurface for C documentation.sdl27Perform a scaled surface copy to a destination surface.See  &https://wiki.libsdl.org/SDL_BlitScaledSDL_BlitScaled for C documentation.sdl2Get or set the color key (transparent pixel color) for a surface.This   can be modified using & and the current value retrieved with .See  'https://wiki.libsdl.org/SDL_SetColorKeySDL_SetColorKey and  'https://wiki.libsdl.org/SDL_GetColorKeySDL_GetColorKey for C documentation.sdl2Get or set the additional color value multiplied into render copy operations.This   can be modified using & and the current value retrieved with .See  .https://wiki.libsdl.org/SDL_SetTextureColorModSDL_SetTextureColorMod and  .https://wiki.libsdl.org/SDL_GetTextureColorModSDL_GetTextureColorMod for C documentation.sdl2Default options for .  =  {  =  ,  = False } sdl2*Get information about a rendering context.See  +https://wiki.libsdl.org/SDL_GetRendererInfoSDL_GetRendererInfo for C documentation.sdl2Enumerate all known render drivers on the system, and determine their supported features.See  /https://wiki.libsdl.org/SDL_GetRenderDriverInfoSDL_GetRenderDriverInfo for C documentation.sdl2Get or set the additional alpha value multiplied into render copy operations.This   can be modified using & and the current value retrieved with .See  .https://wiki.libsdl.org/SDL_SetTextureAlphaModSDL_SetTextureAlphaMod and  .https://wiki.libsdl.org/SDL_GetTextureAlphaModSDL_GetTextureAlphaMod for C documentation.sdl2;Get or set the blend mode used for texture copy operations.This   can be modified using & and the current value retrieved with .See  /https://wiki.libsdl.org/SDL_SetTextureBlendModeSDL_SetTextureBlendMode and  /https://wiki.libsdl.org/SDL_GetTextureBlendModeSDL_GetTextureBlendMode for C documentation.sdl23Get or set the blend mode used for blit operations.This   can be modified using & and the current value retrieved with .See  /https://wiki.libsdl.org/SDL_SetSurfaceBlendModeSDL_SetSurfaceBlendMode and  /https://wiki.libsdl.org/SDL_GetSurfaceBlendModeSDL_GetSurfaceBlendMode for C documentation.sdl2&Get or set the current render target. * corresponds to the default render target.This   can be modified using & and the current value retrieved with .See  +https://wiki.libsdl.org/SDL_SetRenderTargetSDL_SetRenderTarget and  +https://wiki.libsdl.org/SDL_GetRenderTargetSDL_GetRenderTarget for C documentation.sdl2;Get or set the device independent resolution for rendering.This   can be modified using & and the current value retrieved with .See  0https://wiki.libsdl.org/SDL_RenderSetLogicalSizeSDL_RenderSetLogicalSize and  0https://wiki.libsdl.org/SDL_RenderGetLogicalSizeSDL_RenderGetLogicalSize for C documentation.sdl2>Determine whether a window supports the use of render targets.See  1https://wiki.libsdl.org/SDL_RenderTargetSupportedSDL_RenderTargetSupported for C documentation.sdl2Convert the given the enumerated pixel format to a bpp value and RGBA masks.See  2https://wiki.libsdl.org/SDL_PixelFormatEnumToMasksSDL_PixelFormatEnumToMasks for C documentation.sdl2Convert a bpp value and RGBA masks to an enumerated pixel format.See  2https://wiki.libsdl.org/SDL_MasksToPixelFormatEnumSDL_MasksToPixelFormatEnum for C documentation.sdl2The  to be copied fromsdl2The rectangle to be copied, or  to copy the entire surfacesdl2The  that is the blit targetsdl2The position to blit tosdl2The rendering context.sdl2The size of the texture.sdl2The rendering contextsdl2:The surface containing pixel data used to fill the texturesdl28The texture to bind to the current OpenGL/ES/ES2 contextsdl2