>J       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                                                        ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 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 VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                  "Safe  Safe+ Note: the  o is only valid until the next SDL function call. If you need to preserve the error message, make a copy of it.       Safe   Safe79     SafeNZ   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'() !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu vwxyz{|}~       !"#$%&'()   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()Safe+*The storage associated with the resulting   has to be released with   when it is no longer required.*The storage associated with the resulting   has to be released with   when it is no longer required.*The storage associated with the resulting   has to be released with   when it is no longer required.*The storage associated with the resulting   has to be released with   when it is no longer required.*The storage associated with the resulting   has to be released with   when it is no longer required.*The storage associated with the resulting   has to be released with   when it is no longer required.z*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ c*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmlkjifgh[\]^_`abcdeQRSTUVWXYZKLMNOPDEFGHIJ  "#(*29@BC    !$%&')+,-./01345678:;<=>?Az{|}~uvwxypqrstijklmno`abcdefgh\]^_RSTUVWXYZ[NOPQHIJKLM@ABCDEFG89:;<=>?/01234567*+,-.S*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Hۖ  "#(*29@BC    !$%&')+,-./01345678:;<=>?ADEFGHIJKLMNOPQ RSTUVWXYZ[ \]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe2 2 Safe          Safe<                      ! " #<                      ! " # Safe+07Z      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ $ % & '      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ $ % & ' Safe ( ) * + , - . / 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 { | } ~       c     c      ( ) * + , - . / 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 { | } ~        Safe5  !"#$%&'()*+, !"#$%&'()*+, !"#$%&'()*+,5  !"#$%&'()*+, Safe --- - SafeN ./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU(./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU(./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUN ./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUSafef                           ! " # $ % & ' ( ) * + , - . / 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 xVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ f                           ! " # $ % & ' ( ) * + , - . / 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 xVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe3 y z { | } ~       !"#     !"#     !"#3 y z { | } ~       !"# Safe<  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#Safe+0$2An SDL rendering device. This can be created with !.$%&'()*$%&'()*()*&'$%$%&'()*None+07 +3Information about a key press or key release event.- The keyboard .-SDL's virtual key representation for this key/EA set of modifiers that were held at the time this data was generated0:Information about which keys are currently held down. Use = to generate this information.=vGet 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.>RSet the rectangle used to type text inputs and start accepting text input events.See  *https://wiki.libsdl.org/SDL_StartTextInputSDL_StartTextInput for C documentation.?%Stop receiving any text input events.See  )https://wiki.libsdl.org/SDL_StopTextInputSDL_StopTextInput for C documentation.@7Check whether the platform has screen keyboard support.See  4https://wiki.libsdl.org/SDL_HasScreenKeyboardSupportSDL_HasScreenKeyboardSupport for C documentation.A@Check whether the screen keyboard is shown for the given window.See  1https://wiki.libsdl.org/SDL_IsScreenKeyboardShownSDL_IsScreenKeyboardShown for C documentation.BuGet 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.C4Get a snapshot of the current state of the keyboard.*This computation generates a mapping from  to  ' - evaluating the function at specific Cs will inform you as to whether or not that key was held down when C was called.See  ,https://wiki.libsdl.org/SDL_GetKeyboardStateSDL_GetKeyboardState for C documentation.+,-./0123456789:;<=>?@ABC       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~+,-./0123456789:;<=>?@ABC=0123456789:;<C>?@AB+,-./ +,-./0 123456789:;<=>?@ABC "Safe+0 DError 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.E9A call to a low-level SDL C function failed unexpectedly.F8The Haskell routine that was trying to call a C functionG4The C function that was called and produced an errorH*SDL's understanding of what has gone wrongI9An SDL C function was called with an unexpected argument.J*The argument that SDL failed to understandKFA hint was attempted to be set, but SDL does not know about this hint.LThe hint that could not be setDEFGHIJKL DEFGHIJKL  D EIKFGHFGJLJ None+0 M3A description of joystick that can be opened using S2. To retrieve a list of connected joysticks, use R.Q5Count the number of joysticks attached to the system.See  (https://wiki.libsdl.org/SDL_NumJoysticksSDL_NumJoysticks for C documentation.RDEnumerate all connected joysticks, retrieving a description of each.S[Open a joystick so that you can start receiving events from interaction with this joystick.See  (https://wiki.libsdl.org/SDL_JoystickOpenSDL_JoystickOpen for C documentation.T(Close a joystick previously opened with S.See  )https://wiki.libsdl.org/SDL_JoystickCloseSDL_JoystickClose for C documentation.UrGet the instance ID of an opened joystick. The instance ID is used to identify the joystick in future SDL events.See  .https://wiki.libsdl.org/SDL_JoystickInstanceIDSDL_JoystickInstanceID for C documentation.V.Determine if a given button is currently held.See  -https://wiki.libsdl.org/SDL_JoystickGetButtonSDL_JoystickGetButton for C documentation.W-Get the ball axis change since the last poll.See  +https://wiki.libsdl.org/SDL_JoystickGetBallSDL_JoystickGetBall for C documentation.X7Get the current state of an axis control on a joystick.Returns a 16-bit signed integer representing the current position of the axis. The state is a value ranging from -32768 to 32767.uOn most modern joysticks the x-axis is usually represented by axis 0 and the y-axis by axis 1. The value returned by X is a signed integer (-32768 to 32767) representing the current position of the axis. It may be necessary to impose certain tolerances on these values to account for jitter.2Some joysticks use axes 2 and 3 for extra buttons.See  +https://wiki.libsdl.org/SDL_JoystickGetAxisSDL_JoystickGetAxis for C documentation.Y6Get the number of general axis controls on a joystick.See  +https://wiki.libsdl.org/SDL_JoystickNumAxesSDL_JoystickNumAxes for C documentation.Z(Get the number of buttons on a joystick.See  .https://wiki.libsdl.org/SDL_JoystickNumButtonsSDL_JoystickNumButtons for C documentation.[+Get the number of trackballs on a joystick.See  ,https://wiki.libsdl.org/SDL_JoystickNumBallsSDL_JoystickNumBalls for C documentation.MNOPQRSThe device to open. Use R to find JoystickDevicessTUV%The index of the button. You can use Z4 to determine how many buttons a given joystick has.W,The index of the joystick ball. You can use [2 to determine how many balls a given joystick has.XYZ[(MNOPQRSTUVWXYZ[QRMNOPSTU(VWXYZ[ MNOPQRSTUVWXYZ[None+-047ZR\"Information about an instantiated $.^The name of the renderer_Supported renderer features`'The number of available texture formatsaThe available texture formatsbThe maximum texture widthcThe maximum texture heightd2The configuration data used when creating windows.f The renderer's acceleration modeg*The renderer supports rendering to texturehRenderer acceleration modei/The renderer does not use hardware accelerationjCThe renderer uses hardware acceleration and refresh rate is ignoredkYThe renderer uses hardware acceleration and present is synchronized with the refresh ratel#The renderer is a software fallbackBlend modes used in  and drawing operations. No blendingAlpha blending. OdstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA)) dstA = srcA + (dstA * (1-srcA)) Additive blending .dstRGB = (srcRGB * srcA) + dstRGB dstA = dstA Color modulate(@ dstRGB = srcRGB * dstRGB dstA = dstAaRaw format of the texture; the actual format may differ, but pixel transfers will use this format#The access available to the textureThe width of the textureThe height of the texture8Information to the GPU about how you will use a texture. Changes rarely, cannot be locked!changes frequently, can be lockedCan be used as a render target5Perform a fast surface copy to a destination surface.See  'https://wiki.libsdl.org/SDL_BlitSurfaceSDL_BlitSurface for C documentation.)Create a texture for a rendering context.See  )https://wiki.libsdl.org/SDL_CreateTextureSDL_CreateTexture for C documentation.*Create a texture from an existing surface.See  4https://wiki.libsdl.org/SDL_CreateTextureFromSurfaceSDL_CreateTextureFromSurface for C documentation.lBind an OpenGL/ES/ES2 texture to the current context for use with when rendering OpenGL primitives directly.See  *https://wiki.libsdl.org/SDL_GL_BindTextureSDL_GL_BindTexture for C documentation.9Unbind an OpenGL/ES/ES2 texture from the current context.See  ,https://wiki.libsdl.org/SDL_GL_UnbindTextureSDL_GL_UnbindTexture for C documentation.Destroy the specified texture.See  *https://wiki.libsdl.org/SDL_DestroyTextureSDL_DestroyTexture for the C documentation.<Lock a portion of the texture for *write-only* pixel access.See  'https://wiki.libsdl.org/SDL_LockTextureSDL_LockTexture for C documentation.CUnlock a texture, uploading the changes to video memory, if needed.Warning: See  0https://bugzilla.libsdl.org/show_bug.cgi?id=1586 Bug No. 1586 before using this function!See  )https://wiki.libsdl.org/SDL_UnlockTextureSDL_UnlockTexture for C documentation.3Set up a surface for directly accessing the pixels.See  'https://wiki.libsdl.org/SDL_LockSurfaceSDL_LockSurface for C documentation.6Release a surface after directly accessing the pixels.See  )https://wiki.libsdl.org/SDL_UnlockSurfaceSDL_UnlockSurface for C documentation."Query the attributes of a texture.See  (https://wiki.libsdl.org/SDL_QueryTextureSDL_QueryTexture for C documentation.Allocate a new RGB surface.See  ,https://wiki.libsdl.org/SDL_CreateRGBSurfaceSDL_CreateRGBSurface for C documentation.4Allocate a new RGB surface with existing pixel data.See  0https://wiki.libsdl.org/SDL_CreateRGBSurfaceFromSDL_CreateRGBSurfaceFrom for C documentation.9Perform a fast fill of a rectangle with a specific color.=If there is a clip rectangle set on the destination (set via clipRect^), then this function will fill based on the intersection of the clip rectangle and the given .See  $https://wiki.libsdl.org/SDL_FillRect SDL_FillRect for C documentation.APerform a fast fill of a set of rectangles with a specific color.EIf there is a clip rectangle set on any of the destinations (set via clipRect^), then this function will fill based on the intersection of the clip rectangle and the given s.See  $https://wiki.libsdl.org/SDL_FillRect SDL_FillRects for C documentation.Free an RGB surface.!If the surface was created using " then the pixel data is not freed.See  'https://wiki.libsdl.org/SDL_FreeSurfaceSDL_FreeSurface for the C documentation.Load a surface from a BMP file.See  #https://wiki.libsdl.org/SDL_LoadBMP SDL_LoadBMP for C documentation.DMap an RGB triple to an opaque pixel value for a given pixel format.This function maps the RGB color value to the specified pixel format and returns the pixel value best approximating the given RGB color value for the given pixel format.lIf the format has a palette (8-bit) the index of the closest matching color in the palette will be returned.fIf the specified pixel format has an alpha component it will be returned as all 1 bits (fully opaque).If the pixel format bpp (color depth) is less than 32-bpp then the unused upper bits of the return value can safely be ignored (e.g., with a 16-bpp format the return value can be assigned to a  , and similarly a   for an 8-bpp format).See  "https://wiki.libsdl.org/SDL_MapRGB SDL_MapRGB for C documentation."Retrive the width and height of a .]Obtain the pointer to the underlying pixels in a surface. You should bracket this call with  and , respectively.)Inspect the pixel format under a surface.#Set a range of colors in a palette.See  ,https://wiki.libsdl.org/SDL_SetPaletteColorsSDL_SetPaletteColors for C documentation./Get the SDL surface associated with the window.See  ,https://wiki.libsdl.org/SDL_GetWindowSurfaceSDL_GetWindowSurface for C documentation.FGet or set the blend mode used for drawing operations (fill and line).This   can be modified using & and the current value retrieved with .See  2https://wiki.libsdl.org/SDL_SetRenderDrawBlendModeSDL_SetRenderDrawBlendMode and  2https://wiki.libsdl.org/SDL_GetRenderDrawBlendModeSDL_GetRenderDrawBlendMode for C documentation.HGet or set the color used for drawing operations (rect, line and clear).This   can be modified using & and the current value retrieved with .See  .https://wiki.libsdl.org/SDL_SetRenderDrawColorSDL_SetRenderDrawColor and  .https://wiki.libsdl.org/SDL_GetRenderDrawColorSDL_GetRenderDrawColor for C documentation.&Copy the window surface to the screen.QThis is the function you use to reflect any changes to the surface on the screen.See  /https://wiki.libsdl.org/SDL_UpdateWindowSurfaceSDL_UpdateWindowSurface for C documentation.9Draw a rectangle outline on the current rendering target.See  *https://wiki.libsdl.org/SDL_RenderDrawRectSDL_RenderDrawRect for C documentation.?Draw some number of rectangles on the current rendering target.See  +https://wiki.libsdl.org/SDL_RenderDrawRectsSDL_RenderDrawRects for C documentation.HFill a rectangle on the current rendering target with the drawing color.See  *https://wiki.libsdl.org/SDL_RenderFillRectSDL_RenderFillRect for C documentation.VFill some number of rectangles on the current rendering target with the drawing color.See  +https://wiki.libsdl.org/SDL_RenderFillRectsSDL_RenderFillRects for C documentation.:Clear the current rendering target with the drawing color.See  'https://wiki.libsdl.org/SDL_RenderClearSDL_RenderClear for C documentation.AGet or set the drawing scale for rendering on the current target.The drawing coordinates are scaled by the x/y scaling factors before they are used by the renderer. This allows resolution independent drawing with a single coordinate system.If this results in scaling or subpixel drawing by the rendering backend, it will be handled using the appropriate quality hints. For best results use integer scaling factors.See  *https://wiki.libsdl.org/SDL_RenderSetScaleSDL_RenderSetScale and  *https://wiki.libsdl.org/SDL_RenderGetScaleSDL_RenderGetScale for C documentation.DGet or set the clip rectangle for rendering on the specified target.This   can be modified using & and the current value retrieved with .See  -https://wiki.libsdl.org/SDL_RenderSetClipRectSDL_RenderSetClipRect and  -https://wiki.libsdl.org/SDL_RenderGetClipRectSDL_RenderGetClipRect for C documentation.@Get or set the drawing area for rendering on the current target.This   can be modified using & and the current value retrieved with .See  -https://wiki.libsdl.org/SDL_RenderSetViewportSDL_RenderSetViewport and  -https://wiki.libsdl.org/SDL_RenderGetViewportSDL_RenderGetViewport for C documentation.GUpdate the screen with any rendering performed since the previous call.aSDL's rendering functions operate on a backbuffer; that is, calling a rendering function such as  does not directly put a line on the screen, but rather updates the backbuffer. As such, you compose your entire scene and present the composed backbuffer to the screen as a complete picture.Therefore, when using SDL's rendering API, one does all drawing intended for the frame, and then calls this function once per frame to present the final drawing to the user.The backbuffer should be considered invalidated after each present; do not assume that previous contents will exist between frames. You are strongly encouraged to call r to initialize the backbuffer before starting each new frame's drawing, even if you plan to overwrite every pixel.See  )https://wiki.libsdl.org/SDL_RenderPresentSDL_RenderPresent for C documentation.>Copy a portion of the texture to the current rendering target.See  &https://wiki.libsdl.org/SDL_RenderCopySDL_RenderCopy for C documentation.Copy 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_RenderCopySDL_RenderCopyEx for C documentation.,Draw a line on the current rendering target.See  *https://wiki.libsdl.org/SDL_RenderDrawLineSDL_RenderDrawLine for C documentation.ADraw a series of connected lines on the current rendering target.See  +https://wiki.libsdl.org/SDL_RenderDrawLinesSDL_RenderDrawLines for C documentation.-Draw a point on the current rendering target.See  +https://wiki.libsdl.org/SDL_RenderDrawPointSDL_RenderDrawPoint for C documentation.5Draw multiple points on the current rendering target.See  ,https://wiki.libsdl.org/SDL_RenderDrawPointsSDL_RenderDrawPoints for C documentation.pCopy 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.7Perform a scaled surface copy to a destination surface.See  &https://wiki.libsdl.org/SDL_BlitScaledSDL_BlitScaled for C documentation.AGet 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.MGet 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.Default options for d.  = d { f = j , g = False } *Get information about a rendering context.See  +https://wiki.libsdl.org/SDL_GetRendererInfoSDL_GetRendererInfo for C documentation.YEnumerate all known render drivers on the system, and determine their supported features.See  /https://wiki.libsdl.org/SDL_GetRenderDriverInfoSDL_GetRenderDriverInfo for C documentation.MGet 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.;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.3Get 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.&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.;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.>Determine whether a window supports the use of render targets.See  1https://wiki.libsdl.org/SDL_RenderTargetSupportedSDL_RenderTargetSupported for C documentation.\]^_`abcdefghijklmnopqrstuvwxyz{|}~   The  to be copied fromThe rectangle to be copied, or   to copy the entire surfaceThe  that is the blit targetThe position to blit toThe rendering context.The size of the texture.The rendering context:The surface containing pixel data used to fill the texture8The texture to bind to the current OpenGL/ES/ES2 context<The texture to unbind from the current OpenGL/ES/ES2 contextThe 7 to lock for access, which must have been created with The area to lock for access;   to lock the entire textureA pointer to the locked pixels, appropriately offset by the locked area, and the pitch of the locked pixels (the pitch is the length of one row in bytes).The size of the surfaceThe bit-depth of the surface2The red, green, blue and alpha mask for the pixelsThe existing pixel dataThe size of the surfaceThe bit-depth of the surface2The pitch - the length of a row of pixels in bytes1The red, green blue and alpha mask for the pixelsThe  that is the drawing target.The rectangle to fill, or   to fill the entire surface. The color to fill with. If the color value contains an alpha component then the destination is simply filled with that alpha information, no blending takes place. This colour will be implictly mapped to the closest approximation that matches the surface's pixel format.The  that is the drawing target.A   of s to be filled. The color to fill with. If the color value contains an alpha component then the destination is simply filled with that alpha information, no blending takes place. This colour will be implictly mapped to the closest approximation that matches the surface's pixel format.The format of the pixelThe color to mapThe  to modifyA  $ of colours to copy into the palette.The index of the first palette entry to modify The rectangle outline to draw.  " for the entire rendering context.The rectangle to fill.  " for the entire rendering context.The rendering contextThe source texture!The source rectangle to copy, or   for the whole texture)The destination rectangle to copy to, or  [ for the whole rendering target. The texture will be stretched to fill the given rectangle.The rendering contextThe source texture!The source rectangle to copy, or   for the whole texture)The destination rectangle to copy to, or  [ for the whole rendering target. The texture will be stretched to fill the given rectangle.dAn angle in degrees that indicates the point around which the destination rectangle will be rotated.The point of rotation>Whether to flip in the X or Y axis. -- ^ The point of rotation#Whether to flip in the X or Y axis.The start point of the lineThe end point of the lineA  D of points along the line. SDL will draw lines between these points.The  to convert6The pixel format that the new surface is optimized forThe  to be copied fromThe rectangle to be copied, or   to copy the entire surfaceThe  that is the blit target&The rectangle that is copied into, or   to copy into the entire surface  $\]^_`abcdefghijklmnopqrstuvwxyz{|}~ބ$defghijklmnopqrstuvwxyz{|}~\]^_`abcO\]^_`abcdefghijklm$nopqrstuvwxyz{|}~      None+07Z &Move the mouse pointer within a given &. (Move the mouse pointer within whichever &0 currently has focus. WarpGlobal -- Needs 2.0.42Identifies what kind of mouse-like device this is.3An actual mouse. The number identifies which mouse.Some sort of touch device.An unknown mouse button.%Sets the current relative mouse mode.When relative mouse mode is enabled, cursor is hidden and mouse position will not change. However, you will be delivered relative mouse position change events.4Check which mouse location mode is currently active.4Return proper mouse location depending on mouse mode2Move the current location of a mouse pointer. The 5 specifies the origin for the given warp coordinates.3Get or set whether the cursor is currently visible.This   can be modified using & and the current value retrieved with .See  &https://wiki.libsdl.org/SDL_ShowCursorSDL_ShowCursor and  &https://wiki.libsdl.org/SDL_HideCursorSDL_HideCursor for C documentation.URetrieve the current location of the mouse, relative to the currently focused window.Retrieve mouse motion<Retrieve a mapping of which buttons are currently held down.;Get or set the currently active cursor. You can create new s with .This   can be modified using & and the current value retrieved with .See  %https://wiki.libsdl.org/SDL_SetCursor SDL_SetCursor and  %https://wiki.libsdl.org/SDL_GetCursor SDL_GetCursor for C documentation.ICreate a cursor using the specified bitmap data and mask (in MSB format).Free a cursor created with  and createColorCusor.See  &https://wiki.libsdl.org/SDL_FreeCursorSDL_FreeCursor for C documentation.Create a color cursor.See  -https://wiki.libsdl.org/SDL_CreateColorCursorSDL_CreateColorCursor for C documentation.#  .Whether this part of the cursor is black. Use   for white and   for black.'Whether or not pixels are visible. Use   for visible and   for transparent.#The width and height of the cursor.gThe X- and Y-axis location of the upper left corner of the cursor relative to the actual mouse position#The location of the cursor hot spot    None+0471The swap interval for the current OpenGL context.#No vertical retrace synchronization9The buffer swap is synchronized with the vertical retrace A created OpenGL context. =The mode a driver should use when creating an OpenGL context. 2A normal profile with no special debugging support >Use a debug context, allowing the usage of extensions such as GL_ARB_debug_output @The profile a driver should use when creating an OpenGL context. AUse the OpenGL core profile, with a given major and minor version Use the compatibilty profile with a given major and minor version. The compatibility profile allows you to use deprecated functions such as immediate mode *Use an OpenGL profile for embedded systems =Configuration used when creating an OpenGL rendering context.  Defaults to   8 8 8 0.  Defaults to 24.  Defaults to 8.  Defaults to     2 1. A set of default options for    =   {   = V4 8 8 8 0 ,   = 24 ,   = 8 ,   =     2 1 } MCreate a new OpenGL context and makes it the current context for the window.Throws DT 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. =Set up an OpenGL context for rendering into an OpenGL window.Throws D on failure.See  *https://wiki.libsdl.org/SDL_GL_MakeCurrentSDL_GL_MakeCurrent for C documentation.  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. Replace 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. <Get or set the swap interval for the current OpenGL context.This   can be modified using & and the current value retrieved with .See  .https://wiki.libsdl.org/SDL_GL_SetSwapIntervalSDL_GL_SetSwapInterval and  .https://wiki.libsdl.org/SDL_GL_GetSwapIntervalSDL_GL_GetSwapInterval for C documentation.                d                              d                  None+07Z* $Display's refresh rate in hertz, or 0 if unspecified. $^Position of the desktop area represented by the display, with the primary display located at (0, 0). %4Size of the desktop area represented by the display. )CLet the window mananger decide where it's best to place the window. ,(Real fullscreen with a video mode change -2Fake fullscreen that takes the size of the desktop 3 Defaults to  . 4 Defaults to  +. Can not be changed after window creation. 5 Defaults to  4. Whether the mouse shall be confined to the window. 6 Defaults to  0. 7 Defaults to  +. Can not be changed after window creation. 8 Defaults to  ). 9 Defaults to  n. Whether the window can be resized by the user. It is still possible to programatically change the size with  setWindowSize. : Defaults to  (800, 600). ;7Create a window with the given title and configuration.Throws D on failure. <aDefault configuration for windows. Use the record update syntax to override any of the defaults.  < =  1 {  3 = True ,  4 = False ,  5 = False ,  6 =  0 ,  7 = Nothing ,  8 =  ) ,  9 = False ,  : = V2 800 600 } =Destroy the given window. The &% handler may not be used afterwards. >.Get or set if the window should have a border.This   can be modified using & and the current value retrieved with . ?^Get or set the window's brightness, where 0.0 is completely dark and 1.0 is normal brightness.Throws D\ if the hardware does not support gamma correction, or if the system has run out of memory.This   can be modified using & and the current value retrieved with . @=Get or set whether the mouse shall be confined to the window.This   can be modified using & and the current value retrieved with . AChange between window modes.Throws D on failure. BSet the position of the window. CGet the position of the window. DdGet or set the size of a window's client area. Values beyond the maximum supported size are clamped.This   can be modified using & and the current value retrieved with .See  )https://wiki.libsdl.org/SDL_SetWindowSizeSDL_SetWindowSize and  )https://wiki.libsdl.org/SDL_GetWindowSizeSDL_GetWindowSize for C documentation. EaGet or set the title of the window. If the window has no title, then an empty string is returned.This   can be modified using & and the current value retrieved with .See  *https://wiki.libsdl.org/SDL_SetWindowTitleSDL_SetWindowTitle and  *https://wiki.libsdl.org/SDL_GetWindowTitleSDL_GetWindowTitle for C documentation. FYGet or set the pointer to arbitrary user data associated with the given window and name.This   can be modified using & and the current value retrieved with .See  *https://wiki.libsdl.org/SDL_SetWindowTitleSDL_SetWindowTitle and  *https://wiki.libsdl.org/SDL_GetWindowTitleSDL_GetWindowTitle for C documentation. G/Retrieve the configuration of the given window. Note that  a will be returned instead of potential OpenGL parameters used during the creation of the window. H7Get the pixel format that is used for the given window. I Get the text from the clipboard.Throws D on failure. J8Checks if the clipboard exists, and has some text in it. K:Replace the contents of the clipboard with the given text.Throws D on failure. LHide a window.See  &https://wiki.libsdl.org/SDL_HideWindowSDL_HideWindow for C documentation. M=Raise the window above other windows and set the input focus.See  'https://wiki.libsdl.org/SDL_RaiseWindowSDL_RaiseWindow for C documentation. NPrevent the screen from being blanked by a screen saver. If you disable the screensaver, it is automatically re-enabled when SDL quits.See  .https://wiki.libsdl.org/SDL_DisableScreenSaverSDL_DisableScreenSaver for C documentation. O1Allow the screen to be blanked by a screen saver.See  -https://wiki.libsdl.org/SDL_EnableScreenSaverSDL_EnableScreenSaver for C documentation. P)Check whether screen savers are enabled .See  0https://wiki.libsdl.org/SDL_IsScreenSaverEnabledSDL_IsScreenSaverEnabled for C documentation. QShow a window.See  &https://wiki.libsdl.org/SDL_ShowWindowSDL_ShowWindow for C documentation. REGets or sets the gamma ramp for the display that owns a given window.,Note that the data for the gamma ramp - the   (   ) - must contain 256 element arrays. This triple is a set of translation vectors for each of the 16-bit red, green and blue channels.This   can be modified using & and the current value retrieved with .Despite the name and signature, this method retrieves the gamma ramp of the entire display, not an individual window. A window is considered to be owned by the display that contains the window's center pixel. SThrows D on failure. TaShow a simple message box with the given title and a message. Consider writing your messages to stderr too.Throws D) if there are no available video targets. U6Get or set the maximum size of a window's client area.This   can be modified using & and the current value retrieved with .See  0https://wiki.libsdl.org/SDL_SetWindowMaximumSizeSDL_SetWindowMaximumSize and  0https://wiki.libsdl.org/SDL_GetWindowMaximumSizeSDL_GetWindowMaximumSize for C documentation. V6Get or set the minimum size of a window's client area.This   can be modified using & and the current value retrieved with .See  0https://wiki.libsdl.org/SDL_SetWindowMinimumSizeSDL_SetWindowMinimumSize and  0https://wiki.libsdl.org/SDL_GetWindowMinimumSizeSDL_GetWindowMinimumSize for C documentation.G            ! " # $ % & ' ( ) * + , - . / 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 d$&\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 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 Xj& ; < 1 2 3 4 5 6 7 8 9 : + , - . / 0 ' ( ) * = L M Q V U D > ? R @ A C B E F G Hmnopqrstuvwxyz{|}~ W X I J K S ! " # $ % &        N O P T    (            ! " # $ % & ' ( ) * + , - . / 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 Safe+0 YA timer created by  a. This  Y can be removed with  b. ZA  Z is called with the interval size of the callback. It can return information as to whether or not the timer should continue to exist. [ [P allows a callback to inform SDL if the timer should be retriggered or cancelled \<Retrigger the timer again in a given number of milliseconds. ](Cancel future invocations of this timer. ^4Number of milliseconds since library initialization.See  $https://wiki.libsdl.org/SDL_GetTicks SDL_GetTicks for C documentation. _kThe current time in seconds since some arbitrary starting point (consist over the life of the application).AThis time is derived from the system's performance counter - see  3https://wiki.libsdl.org/SDL_GetPerformanceFrequencySDL_GetPerformanceFrequency and  1https://wiki.libsdl.org/SDL_GetPerformanceCounterSDL_GetPerformanceCounter. for C documentation about the implementation. `9Wait a specified number of milliseconds before returning.'Users are generally recommended to use  threadDelayD instead, to take advantage of the abilities of the Haskell runtime.See  !https://wiki.libsdl.org/SDL_Delay SDL_Delay for C documentation. aqSet up a callback function to be run on a separate thread after the specified number of milliseconds has elapsed.See  $https://wiki.libsdl.org/SDL_AddTimer SDL_AddTimer for C documentation. b Remove a  Y.See  'https://wiki.libsdl.org/SDL_RemoveTimerSDL_RemoveTimer for C documentation. Y Z [ \ ] ^ _ ` a b Y Z [ \ ] ^ _ ` a b ^ _ ` Z Y [ \ ] a b Y Z [ \ ] ^ _ ` a bSafe+07Z c0Information about how much charge a battery has. e(How many seconds of battery life is left f!The percentage of battery charged g>Information on battery consumption for battery powered devices h'The battery is currently being drained. iThe battery is fully charged. j5The device is plugged in and the battery is charging. k=Information about the power supply for the user's environment l-The user is on a battery powered device. See  g for charge information, and  c for charge information m/The user is on a device connected to the mains. n1SDL could not determine the power for the device. oCurrent 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. c d e f g h i j k l m n o c d e f g h i j k l m n o o k l m n g h i j c d e f c d e f g h i j k l m n o#None*      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(+,-./0123456789:;<=>?@ABCMNOPQRSTUVWXYZ[Safe !"+0357>U% p]How to deal with setting hints when an existing override or environment variable is present. q%Low priority, used for default values rMedium priority s High priority tThe  t: 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  . ~iA hint that specifies which shader compiler to preload when using the Chrome ANGLE binaries. By default d3dcompiler_46.dll will be used. Use d3dcompiler_46.dll, best for Vista or later Use d3dcompiler_43.dll for XP support lDo not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries A 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. RA hint that specifies scaling quality. By default nearest pixel sampling is used. Nearest pixel sampling 3linear filtering (supported by OpenGL and Direct3D) -Anisotropic filtering (supported by Direct3D) zA hint that specifies whether the OpenGL render driver uses shaders. By default shaders are used if OpenGL supports them. Disable shaders %Enable shaders, if they are available A 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. A hint that specifies whether relative mouse mode is implemented using mouse warping. By default SDL will use raw input for relative mouse mode &Relative mouse mode uses the raw input &Relative mouse mode uses mouse warping A 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. Disable emulating right click Enable emulating right click A 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. Disable 3D acceleration 2Enable 3D acceleration, using the default renderer %Enable 3D acceleration using Direct3D #Enable 3D acceleration using OpenGL %Enable 3D acceleration using OpenGLES &Enable 3D acceleration using OpenGLES2 /Enable 3D acceleration using software rendering A 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. 3List only real joysticks and accept input from them _List real joysticks along with the accelerometer as if it were a 3 axis joystick (the default) Set 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. BRetrieve and map the current value associated with the given hint.: p q r s t u v w x y z { | } ~  5 p q r s t u v w x y z { | } ~  5 t u v w x y z { | } p q r s ~   p q r s t u v w x y z { | } ~          Safe 3An absolute path to the application data directory.4The path is guaranteed to end with a path separator.Throws DG on failure, or if the platform does not implement this functionality. A 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 D on failure.    None+07VZ #SDL reported an unknown event type. The unknown event code. The clipboard changed. 2An event used to request a file open by the system The file name. "Complex gesture event information. The touch device index. =The unique id of the closest gesture to the performed stroke. .The number of fingers used to draw the stroke. yThe difference between the gesture template and the actual performed gesture (lower errors correspond to closer matches). %The normalized center of the gesture. )Multiple finger gesture event information The touch device index. 7The amount that the fingers rotated during this motion. 7The amount that the fingers pinched during this motion. %The normalized center of the gesture. +The number of fingers used in this gesture. Finger touch event information. The touch device index. The finger index. <The location of the touch event, normalized between 0 and 1. 0The distance moved, normalized between -1 and 1. AThe quantity of the pressure applied, normalized between 0 and 1. %A video driver dependent system event *Event data for application-defined events. The associated &. User defined event code. User defined data pointer. User defined data pointer. #Controller device event information 1The joystick instance ID that reported the event. (Game controller button event information 1The joystick instance ID that reported the event. The controller button. The state of the button. .Game controller axis motion event information. 1The joystick instance ID that reported the event. The index of the axis. 0The axis value ranging between -32768 and 32767. "Joystick device event information. 8The instance id of the joystick that reported the event. "Joystick button event information. 8The instance id of the joystick that reported the event. %The index of the button that changed. The state of the button. .Joystick hat position change event information 8The instance id of the joystick that reported the event. "The index of the hat that changed. The new position of the hat. ,Joystick trackball motion event information. 8The instance id of the joystick that reported the event. (The index of the trackball that changed. %The relative motion of the trackball. &Joystick axis motion event information 8The instance id of the joystick that reported the event. #The index of the axis that changed. CThe current position of the axis, ranging between -32768 and 32767. Mouse wheel event information. The associated &. The  whose wheel was scrolled. The amount scrolled. 9A mouse or pointer device button was pressed or released. The associated &. +Whether the button was pressed or released. The & whose button was pressed or released. (The button that was pressed or released. FThe amount of clicks. 1 for a single-click, 2 for a double-click, etc. #The coordinates of the mouse click. $A mouse or pointer device was moved. The associated &. The  that was moved. A collection of s that are currently held down. The new position of the mouse. 'The relative mouse motion of the mouse. &Keyboard text input event information. The associated &. The input text. (Keyboard text editing event information. The associated &. The editing text. #The location to begin editing from. 6The number of characters to edit from the start point. ,A keyboard key has been pressed or released. The associated &. (Whether the key was pressed or released.  E if this is a repeating key press from the user holding the key down. 5A description of the key that this event pertains to. 6The window manager requests that the window be closed. The associated &. #The window has lost keyboard focus. The associated &. %The window has gained keyboard focus. The associated &. ! The window has lost mouse focus. #The associated &. $"The window has gained mouse focus. &The associated &. '9The window has been restored to normal size and position. )The associated &. *The window has been maximized. ,The associated &. -The window has been minimized. /The associated &. 0The window size has changed, either as a result of an API call or through the system or user changing the window size; this event is followed by  IS if the size was changed by an external event, i.e. the user or the window manager. 2The associated &. 3=Window has been resized. This is event is always preceded by  J. 5The associated &. 6The new size of the &. 7A & has been moved. 9The associated &. :The new position of the &. ;A part of a window has been exposed - where exposure means to become visible (for example, an overlapping window no longer overlaps with the window). =The associated &. >A window has been hidden. @The associated &. AA window has been shown. CThe associated &. DxAn enumeration of all possible SDL event types. This data type pairs up event types with their payload, where possible. j*A single SDL event. This event occured at  l and carries data under  m. lThe time the event occured. mData pertaining to this event. niPoll for currently pending events. You can only call this function in the thread that set the video mode. o8Clear the event queue by polling for all pending events. p7Run a monadic computation, accumulating over all known  js.ZThis can be useful when used with a state monad, allowing you to fold all events together. q/Wait indefinitely for the next available event. r?Wait until the specified timeout for the next available amount. s=Pump the event loop, gathering events from the input devices.FThis function updates the event queue and internal input device state.This should only be run in the thread that initialized the video subsystem, and for extra safety, you should consider only doing those things on the main thread in any case. sk gathers all the pending input information from devices and places it in the event queue. Without calls to  sJ no events would ever be placed on the queue. Often the need for calls to  s is hidden from the user since  n and  q implicitly call  sj. However, if you are not polling or waiting for events (e.g. you are filtering them), then you must call  s to force an event queue update.See  &https://wiki.libsdl.org/SDL_PumpEventsSDL_PumpEvents for C documentation.                           ! " # $ % & ' ( ) * + , - . / 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 r4The maximum amount of time to wait, in milliseconds. s                           ! " # $ % & ' ( ) * + , - . / 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 n o p s q r j k l m 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 A B C > ? @ ; < = 7 8 9 : 3 4 5 6 0 1 2 - . / * + , ' ( ) $ % & ! " #                           0                                               ! " # $ % & ' ( ) * + , - . / 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 sNone!"&*+-./0>INZ1 t?An abstract description of an audio driver on the host machine. uOpened devices are always  v or  wE in normal circumstances. A failing device may change its status to  x5 at any time, and closing a device will progress to  x too. vThe   is playing. wThe   is paused. xThe   is stopped. yWhether to allow an   to play sound or remain paused. z Pause the  ,, which will stop producing/capturing audio. { Resume the  . |.Whether a device should be locked or unlocked. }=Lock the device, preventing the callback from producing data. ~2Unlock the device, resuming calls to the callback. hUsed 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 ( ).  P this exact property value, and fail if a matching audio device cannot be found.  A this property value, but allow other audio devices to be opened. How you intend to use an  ,The device will be used for sample playback. +The device will be used for sample capture.  ) is the concrete specification of how an  ! was sucessfully opened. Unlike  , which specifies what you want,   specifies what you have. "DSP frequency (samples per second) Audio data format !Number of separate sound channels $Calculated udio buffer silence value )Audio buffer size in samples (power of 2) %Calculated audio buffer size in bytes :The function to call when the audio device needs more data +How many channels audio should be played on A single speaker configuration &A traditional left/right stereo system 1 surround sound IInformation about what format an audio bytestream is. The type variable tc indicates the type used for audio buffer samples. It is determined by the choice of the provided  SampleBitSize. For example: BAudioFormat UnsignedInteger Sample8Bit Native :: AudioFormat Word8[Indicating that an 8-bit audio format in the platforms native endianness uses a buffer of   values. /An open audio device. These can be created via   and should be closed with  A specification to  P, indicating the desired output format. Note that many of these properties are  r, meaning that you can choose whether or not SDL should interpret your specification as an unbreakable request ( ), or as an approximation  . $The output audio frequency in herts. @The format of audio that will be sampled from the output buffer. The amount of audio channels. AOutput audio buffer size in samples. This should be a power of 2. aA callback to invoke whenever new sample data is required. The callback will be passed a single  % that must be filled with audio data. !How you intend to use the opened  - - either for outputting or capturing audio. The name of the   that should be opened. If  , any suitable   will be used. %Attempt to open the closest matching  , as specified by the given  .See  +https://wiki.libsdl.org/SDL_OpenAudioDeviceSDL_OpenAudioDevice for C documentation. See  ,https://wiki.libsdl.org/SDL_CloseAudioDeviceSDL_CloseAudioDevice for C documentation. Enumerate all  Gs attached to this system, that can be used as specified by the given  M. SDL cannot always guarantee that this list can be produced, in which case   will be returned. Lock an  T such that its associated callback will not be called until the device is unlocked.  Change the playback state of an  . Query the state of an  . "Get the human readable name of an  t Obtain a list of all possible audio drivers for this system. These drivers can be used to specificially initialize the audio system. ;Explicitly initialize the audio system against a specific  t. Note that most users will not need to do this, as the normal initialization routines will already take care of this for you. aQuery SDL for the name of the currently initialized audio driver, if possible. This will return  # if no driver has been initialized.M t u v w x y z { | } ~  @ t u v w x y z { | } ~  F  | } ~ y z { u v w x t  t u v w x y z { | } ~          Safe+07 Initializes SDL and the given subsystems. Do not call any SDL functions prior to this one, unless otherwise documented that you may do so.JYou may call this function again with additional subsystems to initialize.Throws $% if initialization fails. Equivalent to   [  ..  ]. Quit 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. fThe major, minor, and patch versions of the SDL library linked with. Does not require initialization.   None      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d$&(+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 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 { | } ~                            ! " # $ % & ' ( ) * + , - . / 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 { | } ~  DEIKFGHFGJLJ &'(&')&'*&'+&',-../0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQQRSTUUVWXYZ[\]]^_`abcddefghijkklmnoppqrsstuvwxyz{||}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^_`aabcdeffghijklmnoopqrstuvwxyyz{|}~ : :  5 5                                                                      ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                                                                                                                                   ! " # $ % & ' ( ) * + , - . / 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 cdefghijklmnopqrstuvwxyz{|}~!      !"#$%&'()*+,-./0{{1233456789:;<=>"%"?"@"A"B"C"D"E"FGGHIJKLMNOPQRSddefghijTTUVWXYZ[s\]^_`abcdefghijklmnopqrstuvwxyz{|}~UUA|jzYVkuly[[\_dghi   !              7   ;<               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D)% E F G H H I J J K KX L LQRST M N NJKL OO P PBC Q RH S S@ T T U<=> V V8 W W456 X X012 Y Y. Z Z*+, [ [&'( \ \!" ] ^ ^ _ _ ` a b b c d e f f g   h i j j k l l m n n o p q q r s s t u u v w w x y y z { { | } } ~                                       %)-/379:?AIPWYZ                    fghijlm     C                        ,       ;                                                                        ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                          ! " # $ % & ' ( ) * + , - . / 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 { | } ~                                                         "1" " " " " " " " " "   &'  |                             &' &'         k   f           sdl2_9BTrESkukR2KYC0jv3dxdVSDLSDL.Raw.Platform SDL.Raw.Error SDL.Raw.Enum SDL.Raw.TypesSDL.Raw.Filesystem SDL.Raw.TimerSDL.Raw.HapticSDL.Input.Keyboard.Codes SDL.Raw.Event SDL.Raw.Basic SDL.Raw.PowerSDL.Raw.Thread SDL.Raw.Video SDL.Raw.AudioSDL.Internal.TypesSDL.Input.KeyboardSDL.Input.JoystickSDL.Video.RendererSDL.Input.MouseSDL.Video.OpenGL SDL.VideoSDL.Time SDL.PowerSDL.HintSDL.Filesystem SDL.Event SDL.AudioSDL.Init Data.BitmaskSDL.Internal.NumberedSDL.RawcreateRenderer SDL.Exception SDL.InputSDLEx SDLExceptionState_6K4a3UqSdqh6lGAm1wlr9s Data.StateVar$=!$=$~!$~get getPlatformSDLError throwError clearErrorgetErrorsetErrorThreadPriority SystemCursorScancode RendererFlip PowerState LogPriorityKeymodKeycodeInitFlag HintPriorityGLattrGameControllerButtonGameControllerAxis EventAction BlendMode AudioStatus AudioFormat SDL_AUDIO_S8 SDL_AUDIO_U8SDL_AUDIO_S16LSBSDL_AUDIO_S16MSBSDL_AUDIO_S16SYSSDL_AUDIO_U16LSBSDL_AUDIO_U16MSBSDL_AUDIO_U16SYSSDL_AUDIO_S32LSBSDL_AUDIO_S32MSBSDL_AUDIO_S32SYSSDL_AUDIO_F32LSBSDL_AUDIO_F32MSBSDL_AUDIO_F32SYSSDL_AUDIO_STOPPEDSDL_AUDIO_PLAYINGSDL_AUDIO_PAUSEDSDL_BLENDMODE_NONESDL_BLENDMODE_BLENDSDL_BLENDMODE_ADDSDL_BLENDMODE_MOD SDL_BYTEORDERSDL_LIL_ENDIANSDL_BIG_ENDIAN SDL_ADDEVENT SDL_PEEKEVENT SDL_GETEVENTSDL_CONTROLLER_AXIS_INVALIDSDL_CONTROLLER_AXIS_LEFTXSDL_CONTROLLER_AXIS_LEFTYSDL_CONTROLLER_AXIS_RIGHTXSDL_CONTROLLER_AXIS_RIGHTYSDL_CONTROLLER_AXIS_TRIGGERLEFT SDL_CONTROLLER_AXIS_TRIGGERRIGHTSDL_CONTROLLER_AXIS_MAXSDL_CONTROLLER_BUTTON_INVALIDSDL_CONTROLLER_BUTTON_ASDL_CONTROLLER_BUTTON_BSDL_CONTROLLER_BUTTON_XSDL_CONTROLLER_BUTTON_YSDL_CONTROLLER_BUTTON_BACKSDL_CONTROLLER_BUTTON_GUIDESDL_CONTROLLER_BUTTON_STARTSDL_CONTROLLER_BUTTON_LEFTSTICK SDL_CONTROLLER_BUTTON_RIGHTSTICK"SDL_CONTROLLER_BUTTON_LEFTSHOULDER#SDL_CONTROLLER_BUTTON_RIGHTSHOULDERSDL_CONTROLLER_BUTTON_DPAD_UPSDL_CONTROLLER_BUTTON_DPAD_DOWNSDL_CONTROLLER_BUTTON_DPAD_LEFT SDL_CONTROLLER_BUTTON_DPAD_RIGHTSDL_CONTROLLER_BUTTON_MAXSDL_GL_RED_SIZESDL_GL_GREEN_SIZESDL_GL_BLUE_SIZESDL_GL_ALPHA_SIZESDL_GL_BUFFER_SIZESDL_GL_DOUBLEBUFFERSDL_GL_DEPTH_SIZESDL_GL_STENCIL_SIZESDL_GL_ACCUM_RED_SIZESDL_GL_ACCUM_GREEN_SIZESDL_GL_ACCUM_BLUE_SIZESDL_GL_ACCUM_ALPHA_SIZE SDL_GL_STEREOSDL_GL_MULTISAMPLEBUFFERSSDL_GL_MULTISAMPLESAMPLESSDL_GL_ACCELERATED_VISUALSDL_GL_RETAINED_BACKINGSDL_GL_CONTEXT_MAJOR_VERSIONSDL_GL_CONTEXT_MINOR_VERSIONSDL_GL_CONTEXT_EGLSDL_GL_CONTEXT_FLAGSSDL_GL_CONTEXT_PROFILE_MASK!SDL_GL_SHARE_WITH_CURRENT_CONTEXTSDL_GL_FRAMEBUFFER_SRGB_CAPABLESDL_HINT_DEFAULTSDL_HINT_NORMALSDL_HINT_OVERRIDESDL_INIT_TIMERSDL_INIT_AUDIOSDL_INIT_VIDEOSDL_INIT_JOYSTICKSDL_INIT_HAPTICSDL_INIT_GAMECONTROLLERSDL_INIT_EVENTSSDL_INIT_NOPARACHUTESDL_INIT_EVERYTHING SDLK_UNKNOWN SDLK_RETURN SDLK_ESCAPESDLK_BACKSPACESDLK_TAB SDLK_SPACE SDLK_EXCLAIM SDLK_QUOTEDBL SDLK_HASH SDLK_PERCENT 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_CAPSLOCKSDLK_F1SDLK_F2SDLK_F3SDLK_F4SDLK_F5SDLK_F6SDLK_F7SDLK_F8SDLK_F9SDLK_F10SDLK_F11SDLK_F12SDLK_PRINTSCREENSDLK_SCROLLLOCK SDLK_PAUSE SDLK_INSERT SDLK_HOME SDLK_PAGEUP SDLK_DELETESDLK_END SDLK_PAGEDOWN SDLK_RIGHT SDLK_LEFT SDLK_DOWNSDLK_UPSDLK_NUMLOCKCLEARSDLK_KP_DIVIDESDLK_KP_MULTIPLY SDLK_KP_MINUS SDLK_KP_PLUS SDLK_KP_ENTER SDLK_KP_1 SDLK_KP_2 SDLK_KP_3 SDLK_KP_4 SDLK_KP_5 SDLK_KP_6 SDLK_KP_7 SDLK_KP_8 SDLK_KP_9 SDLK_KP_0SDLK_KP_PERIODSDLK_APPLICATION SDLK_POWERSDLK_KP_EQUALSSDLK_F13SDLK_F14SDLK_F15SDLK_F16SDLK_F17SDLK_F18SDLK_F19SDLK_F20SDLK_F21SDLK_F22SDLK_F23SDLK_F24 SDLK_EXECUTE SDLK_HELP SDLK_MENU SDLK_SELECT SDLK_STOP SDLK_AGAIN SDLK_UNDOSDLK_CUT SDLK_COPY SDLK_PASTE SDLK_FIND SDLK_MUTE SDLK_VOLUMEUPSDLK_VOLUMEDOWN SDLK_KP_COMMASDLK_KP_EQUALSAS400 SDLK_ALTERASE SDLK_SYSREQ SDLK_CANCEL SDLK_CLEAR SDLK_PRIOR SDLK_RETURN2SDLK_SEPARATORSDLK_OUT SDLK_OPERSDLK_CLEARAGAIN SDLK_CRSEL SDLK_EXSEL SDLK_KP_00 SDLK_KP_000SDLK_THOUSANDSSEPARATORSDLK_DECIMALSEPARATORSDLK_CURRENCYUNITSDLK_CURRENCYSUBUNITSDLK_KP_LEFTPARENSDLK_KP_RIGHTPARENSDLK_KP_LEFTBRACESDLK_KP_RIGHTBRACE SDLK_KP_TABSDLK_KP_BACKSPACE SDLK_KP_A SDLK_KP_B SDLK_KP_C SDLK_KP_D SDLK_KP_E SDLK_KP_F SDLK_KP_XOR SDLK_KP_POWERSDLK_KP_PERCENT SDLK_KP_LESSSDLK_KP_GREATERSDLK_KP_AMPERSANDSDLK_KP_DBLAMPERSANDSDLK_KP_VERTICALBARSDLK_KP_DBLVERTICALBAR SDLK_KP_COLON SDLK_KP_HASH SDLK_KP_SPACE SDLK_KP_ATSDLK_KP_EXCLAMSDLK_KP_MEMSTORESDLK_KP_MEMRECALLSDLK_KP_MEMCLEARSDLK_KP_MEMADDSDLK_KP_MEMSUBTRACTSDLK_KP_MEMMULTIPLYSDLK_KP_MEMDIVIDESDLK_KP_PLUSMINUS SDLK_KP_CLEARSDLK_KP_CLEARENTRYSDLK_KP_BINARY SDLK_KP_OCTALSDLK_KP_DECIMALSDLK_KP_HEXADECIMAL SDLK_LCTRL SDLK_LSHIFT SDLK_LALT SDLK_LGUI SDLK_RCTRL SDLK_RSHIFT SDLK_RALT SDLK_RGUI SDLK_MODESDLK_AUDIONEXTSDLK_AUDIOPREVSDLK_AUDIOSTOPSDLK_AUDIOPLAYSDLK_AUDIOMUTESDLK_MEDIASELECTSDLK_WWW SDLK_MAILSDLK_CALCULATOR SDLK_COMPUTERSDLK_AC_SEARCH SDLK_AC_HOME SDLK_AC_BACKSDLK_AC_FORWARD SDLK_AC_STOPSDLK_AC_REFRESHSDLK_AC_BOOKMARKSSDLK_BRIGHTNESSDOWNSDLK_BRIGHTNESSUPSDLK_DISPLAYSWITCHSDLK_KBDILLUMTOGGLESDLK_KBDILLUMDOWNSDLK_KBDILLUMUP SDLK_EJECT SDLK_SLEEP KMOD_NONE KMOD_LSHIFT KMOD_RSHIFT KMOD_SHIFT KMOD_LCTRL KMOD_RCTRL KMOD_CTRL KMOD_LALT KMOD_RALTKMOD_ALT KMOD_LGUI KMOD_RGUIKMOD_GUIKMOD_NUM KMOD_CAPS KMOD_MODE KMOD_RESERVEDSDL_LOG_PRIORITY_VERBOSESDL_LOG_PRIORITY_DEBUGSDL_LOG_PRIORITY_INFOSDL_LOG_PRIORITY_WARNSDL_LOG_PRIORITY_ERRORSDL_LOG_PRIORITY_CRITICALSDL_NUM_LOG_PRIORITIESSDL_POWERSTATE_UNKNOWNSDL_POWERSTATE_ON_BATTERYSDL_POWERSTATE_NO_BATTERYSDL_POWERSTATE_CHARGINGSDL_POWERSTATE_CHARGED SDL_FLIP_NONESDL_FLIP_HORIZONTALSDL_FLIP_VERTICALSDL_SCANCODE_UNKNOWNSDL_SCANCODE_ASDL_SCANCODE_BSDL_SCANCODE_CSDL_SCANCODE_DSDL_SCANCODE_ESDL_SCANCODE_FSDL_SCANCODE_GSDL_SCANCODE_HSDL_SCANCODE_ISDL_SCANCODE_JSDL_SCANCODE_KSDL_SCANCODE_LSDL_SCANCODE_MSDL_SCANCODE_NSDL_SCANCODE_OSDL_SCANCODE_PSDL_SCANCODE_QSDL_SCANCODE_RSDL_SCANCODE_SSDL_SCANCODE_TSDL_SCANCODE_USDL_SCANCODE_VSDL_SCANCODE_WSDL_SCANCODE_XSDL_SCANCODE_YSDL_SCANCODE_ZSDL_SCANCODE_1SDL_SCANCODE_2SDL_SCANCODE_3SDL_SCANCODE_4SDL_SCANCODE_5SDL_SCANCODE_6SDL_SCANCODE_7SDL_SCANCODE_8SDL_SCANCODE_9SDL_SCANCODE_0SDL_SCANCODE_RETURNSDL_SCANCODE_ESCAPESDL_SCANCODE_BACKSPACESDL_SCANCODE_TABSDL_SCANCODE_SPACESDL_SCANCODE_MINUSSDL_SCANCODE_EQUALSSDL_SCANCODE_LEFTBRACKETSDL_SCANCODE_RIGHTBRACKETSDL_SCANCODE_BACKSLASHSDL_SCANCODE_NONUSHASHSDL_SCANCODE_SEMICOLONSDL_SCANCODE_APOSTROPHESDL_SCANCODE_GRAVESDL_SCANCODE_COMMASDL_SCANCODE_PERIODSDL_SCANCODE_SLASHSDL_SCANCODE_CAPSLOCKSDL_SCANCODE_F1SDL_SCANCODE_F2SDL_SCANCODE_F3SDL_SCANCODE_F4SDL_SCANCODE_F5SDL_SCANCODE_F6SDL_SCANCODE_F7SDL_SCANCODE_F8SDL_SCANCODE_F9SDL_SCANCODE_F10SDL_SCANCODE_F11SDL_SCANCODE_F12SDL_SCANCODE_PRINTSCREENSDL_SCANCODE_SCROLLLOCKSDL_SCANCODE_PAUSESDL_SCANCODE_INSERTSDL_SCANCODE_HOMESDL_SCANCODE_PAGEUPSDL_SCANCODE_DELETESDL_SCANCODE_ENDSDL_SCANCODE_PAGEDOWNSDL_SCANCODE_RIGHTSDL_SCANCODE_LEFTSDL_SCANCODE_DOWNSDL_SCANCODE_UPSDL_SCANCODE_NUMLOCKCLEARSDL_SCANCODE_KP_DIVIDESDL_SCANCODE_KP_MULTIPLYSDL_SCANCODE_KP_MINUSSDL_SCANCODE_KP_PLUSSDL_SCANCODE_KP_ENTERSDL_SCANCODE_KP_1SDL_SCANCODE_KP_2SDL_SCANCODE_KP_3SDL_SCANCODE_KP_4SDL_SCANCODE_KP_5SDL_SCANCODE_KP_6SDL_SCANCODE_KP_7SDL_SCANCODE_KP_8SDL_SCANCODE_KP_9SDL_SCANCODE_KP_0SDL_SCANCODE_KP_PERIODSDL_SCANCODE_NONUSBACKSLASHSDL_SCANCODE_APPLICATIONSDL_SCANCODE_POWERSDL_SCANCODE_KP_EQUALSSDL_SCANCODE_F13SDL_SCANCODE_F14SDL_SCANCODE_F15SDL_SCANCODE_F16SDL_SCANCODE_F17SDL_SCANCODE_F18SDL_SCANCODE_F19SDL_SCANCODE_F20SDL_SCANCODE_F21SDL_SCANCODE_F22SDL_SCANCODE_F23SDL_SCANCODE_F24SDL_SCANCODE_EXECUTESDL_SCANCODE_HELPSDL_SCANCODE_MENUSDL_SCANCODE_SELECTSDL_SCANCODE_STOPSDL_SCANCODE_AGAINSDL_SCANCODE_UNDOSDL_SCANCODE_CUTSDL_SCANCODE_COPYSDL_SCANCODE_PASTESDL_SCANCODE_FINDSDL_SCANCODE_MUTESDL_SCANCODE_VOLUMEUPSDL_SCANCODE_VOLUMEDOWNSDL_SCANCODE_KP_COMMASDL_SCANCODE_KP_EQUALSAS400SDL_SCANCODE_INTERNATIONAL1SDL_SCANCODE_INTERNATIONAL2SDL_SCANCODE_INTERNATIONAL3SDL_SCANCODE_INTERNATIONAL4SDL_SCANCODE_INTERNATIONAL5SDL_SCANCODE_INTERNATIONAL6SDL_SCANCODE_INTERNATIONAL7SDL_SCANCODE_INTERNATIONAL8SDL_SCANCODE_INTERNATIONAL9SDL_SCANCODE_LANG1SDL_SCANCODE_LANG2SDL_SCANCODE_LANG3SDL_SCANCODE_LANG4SDL_SCANCODE_LANG5SDL_SCANCODE_LANG6SDL_SCANCODE_LANG7SDL_SCANCODE_LANG8SDL_SCANCODE_LANG9SDL_SCANCODE_ALTERASESDL_SCANCODE_SYSREQSDL_SCANCODE_CANCELSDL_SCANCODE_CLEARSDL_SCANCODE_PRIORSDL_SCANCODE_RETURN2SDL_SCANCODE_SEPARATORSDL_SCANCODE_OUTSDL_SCANCODE_OPERSDL_SCANCODE_CLEARAGAINSDL_SCANCODE_CRSELSDL_SCANCODE_EXSELSDL_SCANCODE_KP_00SDL_SCANCODE_KP_000SDL_SCANCODE_THOUSANDSSEPARATORSDL_SCANCODE_DECIMALSEPARATORSDL_SCANCODE_CURRENCYUNITSDL_SCANCODE_CURRENCYSUBUNITSDL_SCANCODE_KP_LEFTPARENSDL_SCANCODE_KP_RIGHTPARENSDL_SCANCODE_KP_LEFTBRACESDL_SCANCODE_KP_RIGHTBRACESDL_SCANCODE_KP_TABSDL_SCANCODE_KP_BACKSPACESDL_SCANCODE_KP_ASDL_SCANCODE_KP_BSDL_SCANCODE_KP_CSDL_SCANCODE_KP_DSDL_SCANCODE_KP_ESDL_SCANCODE_KP_FSDL_SCANCODE_KP_XORSDL_SCANCODE_KP_POWERSDL_SCANCODE_KP_PERCENTSDL_SCANCODE_KP_LESSSDL_SCANCODE_KP_GREATERSDL_SCANCODE_KP_AMPERSANDSDL_SCANCODE_KP_DBLAMPERSANDSDL_SCANCODE_KP_VERTICALBARSDL_SCANCODE_KP_DBLVERTICALBARSDL_SCANCODE_KP_COLONSDL_SCANCODE_KP_HASHSDL_SCANCODE_KP_SPACESDL_SCANCODE_KP_ATSDL_SCANCODE_KP_EXCLAMSDL_SCANCODE_KP_MEMSTORESDL_SCANCODE_KP_MEMRECALLSDL_SCANCODE_KP_MEMCLEARSDL_SCANCODE_KP_MEMADDSDL_SCANCODE_KP_MEMSUBTRACTSDL_SCANCODE_KP_MEMMULTIPLYSDL_SCANCODE_KP_MEMDIVIDESDL_SCANCODE_KP_PLUSMINUSSDL_SCANCODE_KP_CLEARSDL_SCANCODE_KP_CLEARENTRYSDL_SCANCODE_KP_BINARYSDL_SCANCODE_KP_OCTALSDL_SCANCODE_KP_DECIMALSDL_SCANCODE_KP_HEXADECIMALSDL_SCANCODE_LCTRLSDL_SCANCODE_LSHIFTSDL_SCANCODE_LALTSDL_SCANCODE_LGUISDL_SCANCODE_RCTRLSDL_SCANCODE_RSHIFTSDL_SCANCODE_RALTSDL_SCANCODE_RGUISDL_SCANCODE_MODESDL_SCANCODE_AUDIONEXTSDL_SCANCODE_AUDIOPREVSDL_SCANCODE_AUDIOSTOPSDL_SCANCODE_AUDIOPLAYSDL_SCANCODE_AUDIOMUTESDL_SCANCODE_MEDIASELECTSDL_SCANCODE_WWWSDL_SCANCODE_MAILSDL_SCANCODE_CALCULATORSDL_SCANCODE_COMPUTERSDL_SCANCODE_AC_SEARCHSDL_SCANCODE_AC_HOMESDL_SCANCODE_AC_BACKSDL_SCANCODE_AC_FORWARDSDL_SCANCODE_AC_STOPSDL_SCANCODE_AC_REFRESHSDL_SCANCODE_AC_BOOKMARKSSDL_SCANCODE_BRIGHTNESSDOWNSDL_SCANCODE_BRIGHTNESSUPSDL_SCANCODE_DISPLAYSWITCHSDL_SCANCODE_KBDILLUMTOGGLESDL_SCANCODE_KBDILLUMDOWNSDL_SCANCODE_KBDILLUMUPSDL_SCANCODE_EJECTSDL_SCANCODE_SLEEPSDL_SCANCODE_APP1SDL_SCANCODE_APP2SDL_NUM_SCANCODESSDL_SYSTEM_CURSOR_ARROWSDL_SYSTEM_CURSOR_IBEAMSDL_SYSTEM_CURSOR_WAITSDL_SYSTEM_CURSOR_CROSSHAIRSDL_SYSTEM_CURSOR_WAITARROWSDL_SYSTEM_CURSOR_SIZENWSESDL_SYSTEM_CURSOR_SIZENESWSDL_SYSTEM_CURSOR_SIZEWESDL_SYSTEM_CURSOR_SIZENSSDL_SYSTEM_CURSOR_SIZEALLSDL_SYSTEM_CURSOR_NOSDL_SYSTEM_CURSOR_HANDSDL_NUM_SYSTEM_CURSORSSDL_THREAD_PRIORITY_LOWSDL_THREAD_PRIORITY_NORMALSDL_THREAD_PRIORITY_HIGH SDL_AUDIO_ALLOW_FREQUENCY_CHANGESDL_AUDIO_ALLOW_FORMAT_CHANGESDL_AUDIO_ALLOW_CHANNELS_CHANGESDL_AUDIO_ALLOW_ANY_CHANGESDL_BUTTON_LEFTSDL_BUTTON_MIDDLESDL_BUTTON_RIGHT SDL_BUTTON_X1 SDL_BUTTON_X2SDL_BUTTON_LMASKSDL_BUTTON_MMASKSDL_BUTTON_RMASKSDL_BUTTON_X1MASKSDL_BUTTON_X2MASKSDL_FIRSTEVENTSDL_QUITSDL_APP_TERMINATINGSDL_APP_LOWMEMORYSDL_APP_WILLENTERBACKGROUNDSDL_APP_DIDENTERBACKGROUNDSDL_APP_WILLENTERFOREGROUNDSDL_APP_DIDENTERFOREGROUNDSDL_WINDOWEVENTSDL_SYSWMEVENT SDL_KEYDOWN SDL_KEYUPSDL_TEXTEDITING SDL_TEXTINPUTSDL_MOUSEMOTIONSDL_MOUSEBUTTONDOWNSDL_MOUSEBUTTONUPSDL_MOUSEWHEELSDL_JOYAXISMOTIONSDL_JOYBALLMOTIONSDL_JOYHATMOTIONSDL_JOYBUTTONDOWNSDL_JOYBUTTONUPSDL_JOYDEVICEADDEDSDL_JOYDEVICEREMOVEDSDL_CONTROLLERAXISMOTIONSDL_CONTROLLERBUTTONDOWNSDL_CONTROLLERBUTTONUPSDL_CONTROLLERDEVICEADDEDSDL_CONTROLLERDEVICEREMOVEDSDL_CONTROLLERDEVICEREMAPPEDSDL_FINGERDOWN SDL_FINGERUPSDL_FINGERMOTIONSDL_DOLLARGESTURESDL_DOLLARRECORDSDL_MULTIGESTURESDL_CLIPBOARDUPDATE SDL_DROPFILE SDL_USEREVENT SDL_LASTEVENTSDL_HAT_CENTERED SDL_HAT_UP SDL_HAT_RIGHT SDL_HAT_DOWN SDL_HAT_LEFTSDL_HAT_RIGHTUPSDL_HAT_RIGHTDOWNSDL_HAT_LEFTUPSDL_HAT_LEFTDOWN SDL_PRESSED SDL_RELEASEDSDL_LOG_CATEGORY_APPLICATIONSDL_LOG_CATEGORY_ERRORSDL_LOG_CATEGORY_ASSERTSDL_LOG_CATEGORY_SYSTEMSDL_LOG_CATEGORY_AUDIOSDL_LOG_CATEGORY_VIDEOSDL_LOG_CATEGORY_RENDERSDL_LOG_CATEGORY_INPUTSDL_LOG_CATEGORY_TESTSDL_LOG_CATEGORY_CUSTOMSDL_MESSAGEBOX_ERRORSDL_MESSAGEBOX_WARNINGSDL_MESSAGEBOX_INFORMATION'SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT'SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULTSDL_GL_CONTEXT_PROFILE_CORE$SDL_GL_CONTEXT_PROFILE_COMPATIBILITYSDL_GL_CONTEXT_PROFILE_ESSDL_GL_CONTEXT_DEBUG_FLAG&SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG!SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG#SDL_GL_CONTEXT_RESET_ISOLATION_FLAGSDL_PIXELFORMAT_UNKNOWNSDL_PIXELFORMAT_INDEX1LSBSDL_PIXELFORMAT_INDEX1MSBSDL_PIXELFORMAT_INDEX4LSBSDL_PIXELFORMAT_INDEX4MSBSDL_PIXELFORMAT_INDEX8SDL_PIXELFORMAT_RGB332SDL_PIXELFORMAT_RGB444SDL_PIXELFORMAT_RGB555SDL_PIXELFORMAT_BGR555SDL_PIXELFORMAT_ARGB4444SDL_PIXELFORMAT_RGBA4444SDL_PIXELFORMAT_ABGR4444SDL_PIXELFORMAT_BGRA4444SDL_PIXELFORMAT_ARGB1555SDL_PIXELFORMAT_RGBA5551SDL_PIXELFORMAT_ABGR1555SDL_PIXELFORMAT_BGRA5551SDL_PIXELFORMAT_RGB565SDL_PIXELFORMAT_BGR565SDL_PIXELFORMAT_RGB24SDL_PIXELFORMAT_BGR24SDL_PIXELFORMAT_RGB888SDL_PIXELFORMAT_RGBX8888SDL_PIXELFORMAT_BGR888SDL_PIXELFORMAT_BGRX8888SDL_PIXELFORMAT_ARGB8888SDL_PIXELFORMAT_RGBA8888SDL_PIXELFORMAT_ABGR8888SDL_PIXELFORMAT_BGRA8888SDL_PIXELFORMAT_ARGB2101010SDL_PIXELFORMAT_YV12SDL_PIXELFORMAT_IYUVSDL_PIXELFORMAT_YUY2SDL_PIXELFORMAT_UYVYSDL_PIXELFORMAT_YVYUSDL_RENDERER_SOFTWARESDL_RENDERER_ACCELERATEDSDL_RENDERER_PRESENTVSYNCSDL_RENDERER_TARGETTEXTURESDL_TEXTUREACCESS_STATICSDL_TEXTUREACCESS_STREAMINGSDL_TEXTUREACCESS_TARGETSDL_TEXTUREMODULATE_NONESDL_TEXTUREMODULATE_COLORSDL_TEXTUREMODULATE_ALPHASDL_TOUCH_MOUSEIDSDL_WINDOWEVENT_NONESDL_WINDOWEVENT_SHOWNSDL_WINDOWEVENT_HIDDENSDL_WINDOWEVENT_EXPOSEDSDL_WINDOWEVENT_MOVEDSDL_WINDOWEVENT_RESIZEDSDL_WINDOWEVENT_SIZE_CHANGEDSDL_WINDOWEVENT_MINIMIZEDSDL_WINDOWEVENT_MAXIMIZEDSDL_WINDOWEVENT_RESTOREDSDL_WINDOWEVENT_ENTERSDL_WINDOWEVENT_LEAVESDL_WINDOWEVENT_FOCUS_GAINEDSDL_WINDOWEVENT_FOCUS_LOSTSDL_WINDOWEVENT_CLOSESDL_WINDOW_FULLSCREENSDL_WINDOW_OPENGLSDL_WINDOW_SHOWNSDL_WINDOW_HIDDENSDL_WINDOW_BORDERLESSSDL_WINDOW_RESIZABLESDL_WINDOW_MINIMIZEDSDL_WINDOW_MAXIMIZEDSDL_WINDOW_INPUT_GRABBEDSDL_WINDOW_INPUT_FOCUSSDL_WINDOW_MOUSE_FOCUSSDL_WINDOW_FULLSCREEN_DESKTOPSDL_WINDOW_FOREIGNSDL_WINDOW_ALLOW_HIGHDPISDL_WINDOWPOS_UNDEFINEDSDL_WINDOWPOS_CENTEREDSDL_HAPTIC_CONSTANTVersion versionMajor versionMinor versionPatchSurface surfaceFormatsurfaceWsurfaceH surfacePixelssurfaceUserdatasurfaceClipRectsurfaceRefcountRWops rwopsSize rwopsSeek rwopsRead rwopsWrite rwopsClose rwopsType RendererInforendererInfoNamerendererInfoFlagsrendererInfoNumTextureFormatsrendererInfoTextureFormatsrendererInfoMaxTextureWidthrendererInfoMaxTextureHeightRectrectXrectYrectWrectHPointpointXpointY PixelFormatpixelFormatFormatpixelFormatPalettepixelFormatBitsPerPixelpixelFormatBytesPerPixelpixelFormatRMaskpixelFormatGMaskpixelFormatBMaskpixelFormatAMaskPalettepaletteNColors paletteColorsMessageBoxDatamessageBoxDataFlagsmessageBoxDataWindowmessageBoxDataTitlemessageBoxDataMessagemessageBoxDataNumButtonsmessageBoxDataButtonsmessageBoxDataColorSchemeMessageBoxColorScheme$messageBoxColorSchemeColorBackgroundmessageBoxColorSchemeColorText&messageBoxColorSchemeColorButtonBorder*messageBoxColorSchemeColorButtonBackground(messageBoxColorSchemeColorButtonSelectedMessageBoxColormessageBoxColorRmessageBoxColorGmessageBoxColorBMessageBoxButtonDatamessageBoxButtonDataFlagsmessageBoxButtonButtonIDmessageBoxButtonTextKeysymkeysymScancode keysymKeycode keysymMod JoystickGUID joystickGUID HapticEffectHapticConstanthapticEffectTypehapticConstantDirectionhapticConstantLengthhapticConstantDelayhapticConstantButtonhapticConstantIntervalhapticConstantLevelhapticConstantAttackLengthhapticConstantAttackLevelhapticConstantFadeLengthhapticConstantFadeLevelHapticPeriodichapticPeriodicDirectionhapticPeriodicLengthhapticPeriodicDelayhapticPeriodicButtonhapticPeriodicIntervalhapticPeriodicPeriodhapticPeriodicMagnitudehapticPeriodicOffsethapticPeriodicPhasehapticPeriodicAttackLengthhapticPeriodicAttackLevelhapticPeriodicFadeLengthhapticPeriodicFadeLevelHapticConditionhapticConditionLengthhapticConditionDelayhapticConditionButtonhapticConditionIntervalhapticConditionRightSathapticConditionLeftSathapticConditionRightCoeffhapticConditionLeftCoeffhapticConditionDeadbandhapticConditionCenter HapticRamphapticRampDirectionhapticRampLengthhapticRampDelayhapticRampButtonhapticRampIntervalhapticRampStart hapticRampEndhapticRampAttackLengthhapticRampAttackLevelhapticRampFadeLengthhapticRampFadeLevelHapticLeftRighthapticLeftRightLengthhapticLeftRightLargeMagnitudehapticLeftRightSmallMagnitude HapticCustomhapticCustomDirectionhapticCustomLengthhapticCustomDelayhapticCustomButtonhapticCustomIntervalhapticCustomChannelshapticCustomPeriodhapticCustomSampleshapticCustomDatahapticCustomAttackLengthhapticCustomAttackLevelhapticCustomFadeLengthhapticCustomFadeLevelHapticDirectionhapticDirectionTypehapticDirectionXhapticDirectionYhapticDirectionZGameControllerButtonBindGameControllerButtonBindNoneGameControllerButtonBindButtongameControllerButtonBindButtonGameControllerButtonBindAxisgameControllerButtonBindAxisGameControllerButtonBindHatgameControllerButtonBindHatgameControllerButtonBindHatMaskFingerfingerIDfingerXfingerYfingerPressureEvent WindowEvent eventTypeeventTimestampwindowEventWindowIDwindowEventEventwindowEventData1windowEventData2 KeyboardEventkeyboardEventWindowIDkeyboardEventStatekeyboardEventRepeatkeyboardEventKeysymTextEditingEventtextEditingEventWindowIDtextEditingEventTexttextEditingEventStarttextEditingEventLengthTextInputEventtextInputEventWindowIDtextInputEventTextMouseMotionEventmouseMotionEventWindowIDmouseMotionEventWhichmouseMotionEventStatemouseMotionEventXmouseMotionEventYmouseMotionEventXRelmouseMotionEventYRelMouseButtonEventmouseButtonEventWindowIDmouseButtonEventWhichmouseButtonEventButtonmouseButtonEventStatemouseButtonEventClicksmouseButtonEventXmouseButtonEventYMouseWheelEventmouseWheelEventWindowIDmouseWheelEventWhichmouseWheelEventXmouseWheelEventY JoyAxisEventjoyAxisEventWhichjoyAxisEventAxisjoyAxisEventValue JoyBallEventjoyBallEventWhichjoyBallEventBalljoyBallEventXReljoyBallEventYRel JoyHatEventjoyHatEventWhichjoyHatEventHatjoyHatEventValueJoyButtonEventjoyButtonEventWhichjoyButtonEventButtonjoyButtonEventStateJoyDeviceEventjoyDeviceEventWhichControllerAxisEventcontrollerAxisEventWhichcontrollerAxisEventAxiscontrollerAxisEventValueControllerButtonEventcontrollerButtonEventWhichcontrollerButtonEventButtoncontrollerButtonEventStateControllerDeviceEventcontrollerDeviceEventWhich QuitEvent UserEventuserEventWindowID userEventCodeuserEventData1userEventData2 SysWMEvent sysWMEventMsgTouchFingerEventtouchFingerEventTouchIDtouchFingerEventFingerIDtouchFingerEventXtouchFingerEventYtouchFingerEventDXtouchFingerEventDYtouchFingerEventPressureMultiGestureEventmultiGestureEventTouchIDmultiGestureEventDThetamultiGestureEventDDistmultiGestureEventXmultiGestureEventYmultiGestureEventNumFingersDollarGestureEventdollarGestureEventTouchIDdollarGestureEventGestureIDdollarGestureEventNumFingersdollarGestureEventErrordollarGestureEventXdollarGestureEventY DropEvent dropEventFileClipboardUpdateEvent UnknownEvent DisplayModedisplayModeFormat displayModeW displayModeHdisplayModeRefreshRatedisplayModeDriverDataColorcolorRcolorGcolorBcolorA AudioSpec audioSpecFreqaudioSpecFormataudioSpecChannelsaudioSpecSilenceaudioSpecSamples audioSpecSizeaudioSpecCallbackaudioSpecUserdataAudioCVTaudioCVTNeededaudioCVTSrcFormataudioCVTDstFormataudioCVTRateIncr audioCVTBuf audioCVTLenaudioCVTLenCvtaudioCVTLenMultaudioCVTLenRatioAtomic atomicValueWindowTouchIDTLSIDTimerIDThreadIDThreadTextureSysWMmsg SysWMinfoSpinLockSemRendererMutex JoystickIDJoystickHaptic GLContext GestureIDGameControllerFingerIDCursorCond AudioDeviceID TimerCallbackThreadFunctionLogOutputFunction HintCallback EventFilter AudioCallbackmkTimerCallbackmkThreadFunctionmkLogOutputFunctionmkHintCallback mkEventFiltermkAudioCallback getBasePath getPrefPathallocRWfreeRWrwFromConstMemrwFromFP rwFromFile rwFromMemrwCloserwReadrwSeekrwTellrwWritereadBE16readBE32readBE64readLE16readLE32readLE64 writeBE16 writeBE32 writeBE64 writeLE16 writeLE32 writeLE64addTimerdelaygetPerformanceCountergetPerformanceFrequencygetTicks removeTimer hapticClosehapticDestroyEffecthapticEffectSupportedhapticGetEffectStatus hapticIndex hapticNamehapticNewEffect hapticNumAxeshapticNumEffectshapticNumEffectsPlaying hapticOpenhapticOpenFromJoystickhapticOpenFromMouse hapticOpened hapticPause hapticQueryhapticRumbleInithapticRumblePlayhapticRumbleStophapticRumbleSupportedhapticRunEffecthapticSetAutocenter hapticSetGain hapticStopAllhapticStopEffect hapticUnpausehapticUpdateEffectjoystickIsHaptic mouseIsHaptic numHaptics unwrapKeycodeunwrapScancodeScancodeUnknown ScancodeA ScancodeB ScancodeC ScancodeD ScancodeE ScancodeF ScancodeG ScancodeH ScancodeI ScancodeJ ScancodeK ScancodeL ScancodeM ScancodeN ScancodeO ScancodeP ScancodeQ ScancodeR ScancodeS ScancodeT ScancodeU ScancodeV ScancodeW ScancodeX ScancodeY ScancodeZ Scancode1 Scancode2 Scancode3 Scancode4 Scancode5 Scancode6 Scancode7 Scancode8 Scancode9 Scancode0ScancodeReturnScancodeEscapeScancodeBackspace ScancodeTab ScancodeSpace ScancodeMinusScancodeEqualsScancodeLeftBracketScancodeRightBracketScancodeBackslashScancodeNonUSHashScancodeSemicolonScancodeApostrophe ScancodeGrave ScancodeCommaScancodePeriod ScancodeSlashScancodeCapsLock ScancodeF1 ScancodeF2 ScancodeF3 ScancodeF4 ScancodeF5 ScancodeF6 ScancodeF7 ScancodeF8 ScancodeF9 ScancodeF10 ScancodeF11 ScancodeF12ScancodePrintScreenScancodeScrollLock ScancodePauseScancodeInsert ScancodeHomeScancodePageUpScancodeDelete ScancodeEndScancodePageDown ScancodeRight ScancodeLeft ScancodeDown ScancodeUpScancodeNumLockClearScancodeKPDivideScancodeKPMultiplyScancodeKPMinusScancodeKPPlusScancodeKPEnter ScancodeKP1 ScancodeKP2 ScancodeKP3 ScancodeKP4 ScancodeKP5 ScancodeKP6 ScancodeKP7 ScancodeKP8 ScancodeKP9 ScancodeKP0ScancodeKPPeriodScancodeNonUSBackslashScancodeApplication ScancodePowerScancodeKPEquals ScancodeF13 ScancodeF14 ScancodeF15 ScancodeF16 ScancodeF17 ScancodeF18 ScancodeF19 ScancodeF20 ScancodeF21 ScancodeF22 ScancodeF23 ScancodeF24ScancodeExecute ScancodeHelp ScancodeMenuScancodeSelect ScancodeStop ScancodeAgain ScancodeUndo ScancodeCut ScancodeCopy ScancodePaste ScancodeFind ScancodeMuteScancodeVolumeUpScancodeVolumeDownScancodeKPCommaScancodeKPEqualsAS400ScancodeInternational1ScancodeInternational2ScancodeInternational3ScancodeInternational4ScancodeInternational5ScancodeInternational6ScancodeInternational7ScancodeInternational8ScancodeInternational9 ScancodeLang1 ScancodeLang2 ScancodeLang3 ScancodeLang4 ScancodeLang5 ScancodeLang6 ScancodeLang7 ScancodeLang8 ScancodeLang9ScancodeAltEraseScancodeSysReqScancodeCancel ScancodeClear ScancodePriorScancodeReturn2ScancodeSeparator ScancodeOut ScancodeOperScancodeClearAgain ScancodeCrSel ScancodeExSel ScancodeKP00 ScancodeKP000ScancodeThousandsSeparatorScancodeDecimalSeparatorScancodeCurrencyUnitScancodeCurrencySubunitScancodeLeftParenScancodeRightParenScancodeLeftBraceScancodeRightBrace ScancodeKPTabScancodeKPBackspace ScancodeKPA ScancodeKPB ScancodeKPC ScancodeKPD ScancodeKPE ScancodeKPF ScancodeKPXORScancodeKPPowerScancodeKPPercentScancodeKPLessScancodeKPGreaterScancodeKPAmpersandScancodeKPDblAmpersandScancodeKPVerticalBarScancodeKPDblVerticalBarScancodeKPColonScancodeKPHashScancodeKPSpace ScancodeKPAtScancodeKPExclamScancodeKPMemStoreScancodeKPMemRecallScancodeKPMemClearScancodeKPMemAddScancodeKPMemSubtractScancodeKPMemMultiplyScancodeKPMemDivideScancodeKPPlusMinusScancodeKPClearScancodeKPClearEntryScancodeKPBinaryScancodeKPOctalScancodeKPDecimalScancodeKPHexadecimal ScancodeLCtrlScancodeLShift ScancodeLAlt ScancodeLGUI ScancodeRCtrlScancodeRShift ScancodeRAlt ScancodeRGUI ScancodeModeScancodeAudioNextScancodeAudioPrevScancodeAudioStopScancodeAudioPlayScancodeAudioMuteScancodeMediaSelect ScancodeWWW ScancodeMailScancodeCalculatorScancodeComputerScancodeACSearchScancodeACHomeScancodeACBackScancodeACForwardScancodeACStopScancodeACRefreshScancodeACBookmarksScancodeBrightnessDownScancodeBrightnessUpScancodeDisplaySwitchScancodeKBDIllumToggleScancodeKBDIllumDownScancodeKBDIllumUp ScancodeEject ScancodeSleep ScancodeApp1 ScancodeApp2KeycodeUnknown KeycodeReturn KeycodeEscapeKeycodeBackspace KeycodeTab KeycodeSpaceKeycodeExclaimKeycodeQuoteDbl KeycodeHashKeycodePercent KeycodeDollarKeycodeAmpersand KeycodeQuoteKeycodeLeftParenKeycodeRightParenKeycodeAsterisk KeycodePlus KeycodeComma KeycodeMinus KeycodePeriod KeycodeSlashKeycode0Keycode1Keycode2Keycode3Keycode4Keycode5Keycode6Keycode7Keycode8Keycode9 KeycodeColonKeycodeSemicolon KeycodeLess KeycodeEqualsKeycodeGreaterKeycodeQuestion KeycodeAtKeycodeLeftBracketKeycodeBackslashKeycodeRightBracket KeycodeCaretKeycodeUnderscoreKeycodeBackquoteKeycodeAKeycodeBKeycodeCKeycodeDKeycodeEKeycodeFKeycodeGKeycodeHKeycodeIKeycodeJKeycodeKKeycodeLKeycodeMKeycodeNKeycodeOKeycodePKeycodeQKeycodeRKeycodeSKeycodeTKeycodeUKeycodeVKeycodeWKeycodeXKeycodeYKeycodeZKeycodeCapsLock KeycodeF1 KeycodeF2 KeycodeF3 KeycodeF4 KeycodeF5 KeycodeF6 KeycodeF7 KeycodeF8 KeycodeF9 KeycodeF10 KeycodeF11 KeycodeF12KeycodePrintScreenKeycodeScrollLock KeycodePause KeycodeInsert KeycodeHome KeycodePageUp KeycodeDelete KeycodeEndKeycodePageDown KeycodeRight KeycodeLeft KeycodeDown KeycodeUpKeycodeNumLockClearKeycodeKPDivideKeycodeKPMultiplyKeycodeKPMinus KeycodeKPPlusKeycodeKPEnter KeycodeKP1 KeycodeKP2 KeycodeKP3 KeycodeKP4 KeycodeKP5 KeycodeKP6 KeycodeKP7 KeycodeKP8 KeycodeKP9 KeycodeKP0KeycodeKPPeriodKeycodeApplication KeycodePowerKeycodeKPEquals KeycodeF13 KeycodeF14 KeycodeF15 KeycodeF16 KeycodeF17 KeycodeF18 KeycodeF19 KeycodeF20 KeycodeF21 KeycodeF22 KeycodeF23 KeycodeF24KeycodeExecute KeycodeHelp KeycodeMenu KeycodeSelect KeycodeStop KeycodeAgain KeycodeUndo KeycodeCut KeycodeCopy KeycodePaste KeycodeFind KeycodeMuteKeycodeVolumeUpKeycodeVolumeDownKeycodeKPCommaKeycodeKPEqualsAS400KeycodeAltErase KeycodeSysReq KeycodeCancel KeycodeClear KeycodePriorKeycodeReturn2KeycodeSeparator KeycodeOut KeycodeOperKeycodeClearAgain KeycodeCrSel KeycodeExSel KeycodeKP00 KeycodeKP000KeycodeThousandsSeparatorKeycodeDecimalSeparatorKeycodeCurrencyUnitKeycodeCurrencySubunitKeycodeKPLeftParenKeycodeKPRightParenKeycodeKPLeftBraceKeycodeKPRightBrace KeycodeKPTabKeycodeKPBackspace KeycodeKPA KeycodeKPB KeycodeKPC KeycodeKPD KeycodeKPE KeycodeKPF KeycodeKPXorKeycodeKPPowerKeycodeKPPercent KeycodeKPLessKeycodeKPGreaterKeycodeKPAmpersandKeycodeKPDblAmpersandKeycodeKPVerticalBarKeycodeKPDblVerticalBarKeycodeKPColon KeycodeKPHashKeycodeKPSpace KeycodeKPAtKeycodeKPExclamKeycodeKPMemStoreKeycodeKPMemRecallKeycodeKPMemClearKeycodeKPMemAddKeycodeKPMemSubtractKeycodeKPMemMultiplyKeycodeKPMemDivideKeycodeKPPlusMinusKeycodeKPClearKeycodeKPClearEntryKeycodeKPBinaryKeycodeKPOctalKeycodeKPDecimalKeycodeKPHexadecimal KeycodeLCtrl KeycodeLShift KeycodeLAlt KeycodeLGUI KeycodeRCtrl KeycodeRShift KeycodeRAlt KeycodeRGUI KeycodeModeKeycodeAudioNextKeycodeAudioPrevKeycodeAudioStopKeycodeAudioPlayKeycodeAudioMuteKeycodeMediaSelect KeycodeWWW KeycodeMailKeycodeCalculatorKeycodeComputerKeycodeACSearch KeycodeACHome KeycodeACBackKeycodeACForward KeycodeACStopKeycodeACRefreshKeycodeACBookmarksKeycodeBrightnessDownKeycodeBrightnessUpKeycodeDisplaySwitchKeycodeKbdIllumToggleKeycodeKbdIllumDownKeycodeKbdIllumUp KeycodeEject KeycodeSleep addEventWatch delEventWatch eventState filterEvents flushEvent flushEventsgetEventFiltergetNumTouchDevicesgetNumTouchFingersgetTouchDevicegetTouchFingerhasEvent hasEventsloadDollarTemplates peepEvents pollEvent pumpEvents pushEvent quitRequested recordGestureregisterEventssaveAllDollarTemplatessaveDollarTemplatesetEventFilter waitEventwaitEventTimeoutgetKeyFromNamegetKeyFromScancode getKeyNamegetKeyboardFocusgetKeyboardState getModStategetScancodeFromKeygetScancodeFromNamegetScancodeNamehasScreenKeyboardSupportisScreenKeyboardShownisTextInputActive setModStatesetTextInputRectstartTextInput stopTextInputcreateColorCursor createCursorcreateSystemCursor freeCursor getCursorgetDefaultCursor getMouseFocus getMouseStategetRelativeMouseModegetRelativeMouseState setCursorsetRelativeMouseMode showCursorwarpMouseInWindow joystickClosejoystickEventStatejoystickGetAttachedjoystickGetAxisjoystickGetBalljoystickGetButtonjoystickGetDeviceGUIDjoystickGetGUIDjoystickGetGUIDFromStringjoystickGetGUIDStringjoystickGetHatjoystickInstanceID joystickNamejoystickNameForIndexjoystickNumAxesjoystickNumBallsjoystickNumButtonsjoystickNumHats joystickOpenjoystickUpdate numJoysticksgameControllerAddMapping!gameControllerAddMappingsFromFilegameControllerAddMappingsFromRWgameControllerClosegameControllerEventStategameControllerGetAttachedgameControllerGetAxisgameControllerGetAxisFromStringgameControllerGetBindForAxisgameControllerGetBindForButtongameControllerGetButton!gameControllerGetButtonFromStringgameControllerGetJoystickgameControllerGetStringForAxis gameControllerGetStringForButtongameControllerMappinggameControllerMappingForGUIDgameControllerNamegameControllerNameForIndexgameControllerOpengameControllerUpdateisGameControllerinit initSubSystemquit quitSubSystem setMainReadywasInitfreeaddHintCallback clearHintsdelHintCallbackgetHintsetHintsetHintWithPrioritylog logCriticallogDebuglogErrorlogGetOutputFunctionlogGetPrioritylogInfo logMessagelogResetPrioritieslogSetAllPrioritylogSetOutputFunctionlogSetPriority logVerboselogWarn getRevisiongetRevisionNumber getVersion getPowerInfo createThread detachThread getThreadID getThreadNamesetThreadPriority tlsCreatetlsGettlsSetthreadID waitThread condBroadcast condSignalcondWaitcondWaitTimeout createCond createMutexcreateSemaphore destroyCond destroyMutexdestroySemaphore lockMutexsemPost semTryWaitsemValuesemWaitsemWaitTimeout tryLockMutex unlockMutex atomicAdd atomicCAS atomicCASPtr atomicDecRef atomicGet atomicGetPtr atomicIncRef atomicLock atomicSet atomicSetPtr atomicTryLock atomicUnlock createWindowcreateWindowAndRenderercreateWindowFrom destroyWindowdisableScreenSaverenableScreenSaver glBindTextureglCreateContextglDeleteContextglExtensionSupportedglGetAttributeglGetCurrentContextglGetCurrentWindowglGetDrawableSizeglGetProcAddressglGetSwapInterval glLoadLibrary glMakeCurrentglResetAttributesglSetAttributeglSetSwapInterval glSwapWindowglUnbindTextureglUnloadLibrarygetClosestDisplayModegetCurrentDisplayModegetCurrentVideoDrivergetDesktopDisplayModegetDisplayBoundsgetDisplayModegetDisplayNamegetNumDisplayModesgetNumVideoDisplaysgetNumVideoDriversgetVideoDrivergetWindowBrightness getWindowDatagetWindowDisplayIndexgetWindowDisplayModegetWindowFlagsgetWindowFromIDgetWindowGammaRamp getWindowGrab getWindowIDgetWindowMaximumSizegetWindowMinimumSizegetWindowPixelFormatgetWindowPosition getWindowSizegetWindowSurfacegetWindowTitle hideWindowisScreenSaverEnabledmaximizeWindowminimizeWindow raiseWindow restoreWindowsetWindowBorderedsetWindowBrightness setWindowDatasetWindowDisplayModesetWindowFullscreensetWindowGammaRamp setWindowGrab setWindowIconsetWindowMaximumSizesetWindowMinimumSizesetWindowPosition setWindowSizesetWindowTitleshowMessageBoxshowSimpleMessageBox showWindowupdateWindowSurfaceupdateWindowSurfaceRects videoInit videoQuitcreateSoftwareRenderer createTexturecreateTextureFromSurfacedestroyRendererdestroyTexturegetNumRenderDriversgetRenderDrawBlendModegetRenderDrawColorgetRenderDriverInfogetRenderTarget getRenderergetRendererInfogetRendererOutputSizegetTextureAlphaModgetTextureBlendModegetTextureColorMod lockTexture queryTexture renderClear renderCopy renderCopyExrenderDrawLinerenderDrawLinesrenderDrawPointrenderDrawPointsrenderDrawRectrenderDrawRectsrenderFillRectrenderFillRectsrenderGetClipRectrenderGetLogicalSizerenderGetScalerenderGetViewport renderPresentrenderReadPixelsrenderSetClipRectrenderSetLogicalSizerenderSetScalerenderSetViewportrenderTargetSupportedsetRenderDrawBlendModesetRenderDrawColorsetRenderTargetsetTextureAlphaModsetTextureBlendModesetTextureColorMod unlockTexture updateTextureupdateYUVTexture allocFormat allocPalettecalculateGammaRamp freeFormat freePalettegetPixelFormatNamegetRGBgetRGBAmapRGBmapRGBAmasksToPixelFormatEnumpixelFormatEnumToMaskssetPaletteColorssetPixelFormatPalette enclosePointshasIntersection intersectRectintersectRectAndLine unionRect blitScaled blitSurface convertPixelsconvertSurfaceconvertSurfaceFormatcreateRGBSurfacecreateRGBSurfaceFromfillRect fillRects freeSurface getClipRect getColorKeygetSurfaceAlphaModgetSurfaceBlendModegetSurfaceColorModloadBMP loadBMP_RW lockSurface lowerBlitlowerBlitScaledsaveBMP saveBMP_RW setClipRect setColorKeysetSurfaceAlphaModsetSurfaceBlendModesetSurfaceColorModsetSurfacePalette setSurfaceRLE unlockSurfacegetWindowWMInfogetClipboardTexthasClipboardTextsetClipboardText audioInit audioQuit buildAudioCVT closeAudiocloseAudioDevice convertAudiofreeWAVgetAudioDeviceNamegetAudioDeviceStatusgetAudioDrivergetAudioStatusgetCurrentAudioDrivergetNumAudioDevicesgetNumAudioDriversloadWAV loadWAV_RW lockAudiolockAudioDevicemixAudiomixAudioFormat openAudioopenAudioDevice pauseAudiopauseAudioDevice unlockAudiounlockAudioDevice joystickPtrkeysymModifier KeyModifierkeyModifierLeftShiftkeyModifierRightShiftkeyModifierLeftCtrlkeyModifierRightCtrlkeyModifierLeftAltkeyModifierRightAltkeyModifierLeftGUIkeyModifierRightGUIkeyModifierNumLockkeyModifierCapsLockkeyModifierAltGr SDLCallFailedsdlExceptionCaller sdlFunctionsdlExceptionErrorSDLUnexpectedArgumentsdlUnknownValueSDLUnknownHintValuesdlHintJoystickDevicejoystickDeviceNamejoystickDeviceIdavailableJoysticks openJoystick closeJoystick getJoystickID buttonPressed ballDelta axisPositionnumAxes numButtonsnumBallsRendererConfig rendererTyperendererTargetTexture RendererTypeUnacceleratedRendererAcceleratedRendererAcceleratedVSyncRendererSoftwareRendererUnknown Index1LSB Index1MSB Index4LSB Index4MSBIndex8RGB332RGB444RGB555BGR555ARGB4444RGBA4444ABGR4444BGRA4444ARGB1555RGBA5551ABGR1555BGRA5551RGB565BGR565RGB24BGR24RGB888RGBX8888BGR888BGRX8888ARGB8888RGBA8888ABGR8888BGRA8888 ARGB2101010YV12IYUVYUY2UYVYYVYU Rectangle BlendNoneBlendAlphaBlend BlendAdditiveBlendModSurfacePixelFormat TextureInfotexturePixelFormat textureAccess textureWidth textureHeight TextureAccessTextureAccessStaticTextureAccessStreamingTextureAccessTarget surfaceBlitsurfaceFillRectsurfaceFillRectssurfaceDimensions formatPaletterendererDrawBlendModerendererDrawColordrawRect drawRectsclear rendererScalerendererClipRectrendererViewportpresentcopycopyExdrawLine drawLines drawPoint drawPointssurfaceBlitScaledsurfaceColorKeytextureColorModdefaultRenderertextureAlphaModtextureBlendModesurfaceBlendModerendererRenderTargetrendererLogicalSizeWarpMouseOrigin MouseDeviceMouseTouch MouseButton ButtonLeft ButtonMiddle ButtonRightButtonX1ButtonX2 ButtonExtra LocationModeAbsoluteLocationRelativeLocationsetMouseLocationModegetMouseLocationModegetModalMouseLocationgetMouseLocation warpMouse cursorVisiblegetAbsoluteMouseLocationgetRelativeMouseLocationgetMouseButtons activeCursor SwapIntervalImmediateUpdatesSynchronizedUpdatesLateSwapTearingModeNormalDebugProfileCore CompatibilityES OpenGLConfigglColorPrecisionglDepthPrecisionglStencilPrecision glProfile defaultOpenGL swapInterval MessageKindErrorWarning Information VideoDrivervideoDriverNamedisplayModeSizeDisplay displayNamedisplayBoundsPositiondisplayBoundsSize displayModesWindowPositionCenteredWhereverAbsolute WindowMode FullscreenFullscreenDesktop Maximized MinimizedWindowed WindowConfig windowBorder windowHighDPIwindowInputGrabbed windowMode windowOpenGLwindowPositionwindowResizablewindowInitialSize defaultWindowwindowBorderedwindowBrightness windowGrab setWindowModegetWindowAbsolutePosition windowSize windowTitle windowDatagetWindowConfigwindowGammaRamp getDisplayswindowMaximumSizewindowMinimumSizeTimerRetriggerTimer RescheduleCanceltickstimeChargechargeSecondsLeft chargePercent BatteryStateDrainingChargedChargingBatteryMainsUnknownPowerStateDefaultPriorityNormalPriorityOverridePriorityHintHintAccelerometerAsJoystickHintFramebufferAccelerationHintMacCTRLClickHintMouseRelativeModeWarpHintRenderDriverHintRenderOpenGLShadersHintRenderScaleQualityHintRenderVSyncHintVideoWinD3DCompilerVideoWinD3DCompilerOptionsD3DVistaOrLater D3DXPSupportD3DNoneRenderVSyncOptions DisableVSync EnableVSyncRenderScaleQuality ScaleNearest ScaleLinear ScaleBestRenderOpenGLShaderOptionsDisableShaders EnableShaders RenderDriversDirect3DOpenGLOpenGLES OpenGLES2SoftwareMouseModeWarpOptions MouseRawInput MouseWarpingMacCTRLClickOptions NoRightClickEmulateRightClickFramebufferAccelerationOptions Disable3DEnable3DDefaultEnable3DDirect3DEnable3DOpenGLEnable3DOpenGLESEnable3DOpenGLES2Enable3DSoftwareAccelerometerJoystickOptionsAccelerometerNotJoystickAccelerometerIsJoystick InputMotionReleasedPressedUnknownEventDataunknownEventTypeClipboardUpdateEventData DropEventDataDollarGestureEventDatadollarGestureEventPosMultiGestureEventDatamultiGestureEventPosTouchFingerEventDatatouchFingerEventPostouchFingerEventRelMotionSysWMEventData UserEventDatauserEventWindowControllerDeviceEventDataControllerButtonEventDataControllerAxisEventDataJoyDeviceEventDataJoyButtonEventDataJoyHatEventDataJoyBallEventDatajoyBallEventRelMotionJoyAxisEventDataMouseWheelEventDatamouseWheelEventWindowmouseWheelEventPosMouseButtonEventDatamouseButtonEventWindowmouseButtonEventMotionmouseButtonEventPosMouseMotionEventDatamouseMotionEventWindowmouseMotionEventPosmouseMotionEventRelMotionTextInputEventDatatextInputEventWindowTextEditingEventDatatextEditingEventWindowKeyboardEventDatakeyboardEventWindowkeyboardEventKeyMotionWindowClosedEventDatawindowClosedEventWindow WindowLostKeyboardFocusEventData"windowLostKeyboardFocusEventWindow"WindowGainedKeyboardFocusEventData$windowGainedKeyboardFocusEventWindowWindowLostMouseFocusEventDatawindowLostMouseFocusEventWindowWindowGainedMouseFocusEventData!windowGainedMouseFocusEventWindowWindowRestoredEventDatawindowRestoredEventWindowWindowMaximizedEventDatawindowMaximizedEventWindowWindowMinimizedEventDatawindowMinimizedEventWindowWindowSizeChangedEventDatawindowSizeChangedEventWindowWindowResizedEventDatawindowResizedEventWindowwindowResizedEventSizeWindowMovedEventDatawindowMovedEventWindowwindowMovedEventPositionWindowExposedEventDatawindowExposedEventWindowWindowHiddenEventDatawindowHiddenEventWindowWindowShownEventDatawindowShownEventWindow EventPayloadWindowShownEventWindowHiddenEventWindowExposedEventWindowMovedEventWindowResizedEventWindowSizeChangedEventWindowMinimizedEventWindowMaximizedEventWindowRestoredEventWindowGainedMouseFocusEventWindowLostMouseFocusEventWindowGainedKeyboardFocusEventWindowLostKeyboardFocusEventWindowClosedEvent eventPayload pollEvents mapEvents AudioDriverAudioDeviceStatusPlayingPausedStopped PlaybackStatePausePlay LockStateLockedUnlocked ChangeableMandateDesireAudioDeviceUsage ForPlayback ForCaptureChannelsMonoStereoQuad FivePointOneSigned8BitAudioUnsigned8BitAudioSigned16BitLEAudioSigned16BitBEAudioSigned16BitNativeAudioUnsigned16BitLEAudioUnsigned16BitBEAudioUnsigned16BitNativeAudioSigned32BitLEAudioSigned32BitBEAudioSigned32BitNativeAudioFloatingLEAudioFloatingBEAudioFloatingNativeAudio AudioDeviceOpenDeviceSpecopenDeviceFreqopenDeviceFormatopenDeviceChannelsopenDeviceSamplesopenDeviceCallbackopenDeviceUsageopenDeviceNamegetAudioDeviceNamessetAudioDeviceLockedsetAudioDevicePlaybackStateaudioDeviceStatusaudioDriverNamegetAudioDriverscurrentAudioDriver InitTimer InitAudio InitVideo InitJoystick InitHapticInitGameController InitEventsInitEverything initialize initializeAllversiongetPlatformFFIbaseForeign.C.StringCString setErrorFFI getErrorFFI clearErrorFFI$fExceptionSDLError foldFlagsToNumbertoNumber FromNumber fromNumberEndianGHC.PtrFunPtr Foreign.PtrfreeHaskellFunPtr$fStorableVersion$fStorableSurface$fStorableRWops$fStorableRendererInfo$fStorableRect$fStorablePoint$fStorablePixelFormat$fStorablePalette$fStorableMessageBoxData$fStorableMessageBoxColorScheme$fStorableMessageBoxColor$fStorableMessageBoxButtonData$fStorableKeysym$fStorableJoystickGUID$fStorableHapticEffect$fStorableHapticDirection"$fStorableGameControllerButtonBind$fStorableFinger$fStorableEvent$fStorableDisplayMode$fStorableColor$fStorableAudioSpec$fStorableAudioCVT$fStorableAtomic writeLE64FFI writeLE32FFI writeLE16FFI writeBE64FFI writeBE32FFI writeBE16FFI readLE64FFI readLE32FFI readLE16FFI readBE64FFI readBE32FFI readBE16FFI rwWriteFFI rwTellFFI rwSeekFFI rwReadFFI rwCloseFFI rwFromMemFFI rwFromFileFFI rwFromFPFFIrwFromConstMemFFI freeRWFFI allocRWFFIgetPrefPathFFIgetBasePathFFIremoveTimerFFI getTicksFFIgetPerformanceFrequencyFFIgetPerformanceCounterFFIdelayFFI addTimerFFI numHapticsFFImouseIsHapticFFIjoystickIsHapticFFIhapticUpdateEffectFFIhapticUnpauseFFIhapticStopEffectFFIhapticStopAllFFIhapticSetGainFFIhapticSetAutocenterFFIhapticRunEffectFFIhapticRumbleSupportedFFIhapticRumbleStopFFIhapticRumblePlayFFIhapticRumbleInitFFIhapticQueryFFIhapticPauseFFIhapticOpenedFFIhapticOpenFromMouseFFIhapticOpenFromJoystickFFI hapticOpenFFIhapticNumEffectsPlayingFFIhapticNumEffectsFFIhapticNumAxesFFIhapticNewEffectFFI hapticNameFFIhapticIndexFFIhapticGetEffectStatusFFIhapticEffectSupportedFFIhapticDestroyEffectFFIhapticCloseFFI$fToNumberKeycodeInt32$fFromNumberKeycodeInt32$fToNumberScancodeWord32$fFromNumberScancodeWord32isGameControllerFFIgameControllerUpdateFFIgameControllerOpenFFIgameControllerNameForIndexFFIgameControllerNameFFIgameControllerMappingForGUIDFFIgameControllerMappingFFI#gameControllerGetStringForButtonFFI!gameControllerGetStringForAxisFFIgameControllerGetJoystickFFI$gameControllerGetButtonFromStringFFIgameControllerGetButtonFFI!gameControllerGetBindForButtonFFIgameControllerGetBindForAxisFFI"gameControllerGetAxisFromStringFFIgameControllerGetAxisFFIgameControllerGetAttachedFFIgameControllerEventStateFFIgameControllerCloseFFI"gameControllerAddMappingsFromRWFFIgameControllerAddMappingFFInumJoysticksFFIjoystickUpdateFFIjoystickOpenFFIjoystickNumHatsFFIjoystickNumButtonsFFIjoystickNumBallsFFIjoystickNumAxesFFIjoystickNameForIndexFFIjoystickNameFFIjoystickInstanceIDFFIjoystickGetHatFFIjoystickGetGUIDStringFFIjoystickGetGUIDFromStringFFIjoystickGetGUIDFFIjoystickGetDeviceGUIDFFIjoystickGetButtonFFIjoystickGetBallFFIjoystickGetAxisFFIjoystickGetAttachedFFIjoystickEventStateFFIjoystickCloseFFIwarpMouseInWindowFFI showCursorFFIsetRelativeMouseModeFFI setCursorFFIgetRelativeMouseStateFFIgetRelativeMouseModeFFIgetMouseStateFFIgetMouseFocusFFIgetDefaultCursorFFI getCursorFFI freeCursorFFIcreateSystemCursorFFIcreateCursorFFIcreateColorCursorFFIstopTextInputFFIstartTextInputFFIsetTextInputRectFFIsetModStateFFIisTextInputActiveFFIisScreenKeyboardShownFFIhasScreenKeyboardSupportFFIgetScancodeNameFFIgetScancodeFromNameFFIgetScancodeFromKeyFFIgetModStateFFIgetKeyboardStateFFIgetKeyboardFocusFFI getKeyNameFFIgetKeyFromScancodeFFIgetKeyFromNameFFIwaitEventTimeoutFFI waitEventFFIsetEventFilterFFIsaveDollarTemplateFFIsaveAllDollarTemplatesFFIregisterEventsFFIrecordGestureFFI pushEventFFI pumpEventsFFI pollEventFFI peepEventsFFIloadDollarTemplatesFFI hasEventsFFI hasEventFFIgetTouchFingerFFIgetTouchDeviceFFIgetNumTouchFingersFFIgetNumTouchDevicesFFIgetEventFilterFFIflushEventsFFI flushEventFFIfilterEventsFFI eventStateFFIdelEventWatchFFIaddEventWatchFFI getVersionFFIgetRevisionNumberFFIgetRevisionFFIlogSetPriorityFFIlogSetOutputFunctionFFIlogSetAllPriorityFFIlogResetPrioritiesFFI logMessageFFIlogGetPriorityFFIlogGetOutputFunctionFFIsetHintWithPriorityFFI setHintFFI getHintFFIdelHintCallbackFFI clearHintsFFIaddHintCallbackFFIfreeFFI wasInitFFIsetMainReadyFFIquitSubSystemFFIquitFFIinitSubSystemFFIinitFFIgetPowerInfoFFIatomicUnlockFFIatomicTryLockFFIatomicSetPtrFFI atomicSetFFI atomicLockFFIatomicGetPtrFFI atomicGetFFIatomicCASPtrFFI atomicCASFFI atomicAddFFIunlockMutexFFItryLockMutexFFIsemWaitTimeoutFFI semWaitFFI semValueFFI semTryWaitFFI semPostFFI lockMutexFFIdestroySemaphoreFFIdestroyMutexFFIdestroyCondFFIcreateSemaphoreFFIcreateMutexFFI createCondFFIcondWaitTimeoutFFI condWaitFFI condSignalFFIcondBroadcastFFI waitThreadFFI threadIDFFI tlsSetFFI tlsGetFFI tlsCreateFFIsetThreadPriorityFFIgetThreadNameFFIgetThreadIDFFIdetachThreadFFIcreateThreadFFIsetClipboardTextFFIhasClipboardTextFFIgetClipboardTextFFIgetWindowWMInfoFFIunlockSurfaceFFIsetSurfaceRLEFFIsetSurfacePaletteFFIsetSurfaceColorModFFIsetSurfaceBlendModeFFIsetSurfaceAlphaModFFIsetColorKeyFFIsetClipRectFFI saveBMP_RWFFIlowerBlitScaledFFI lowerBlitFFIlockSurfaceFFI loadBMP_RWFFIgetSurfaceColorModFFIgetSurfaceBlendModeFFIgetSurfaceAlphaModFFIgetColorKeyFFIgetClipRectFFIfreeSurfaceFFI fillRectsFFI fillRectFFIcreateRGBSurfaceFromFFIcreateRGBSurfaceFFIconvertSurfaceFormatFFIconvertSurfaceFFIconvertPixelsFFIblitSurfaceFFI blitScaledFFI unionRectFFIintersectRectAndLineFFIintersectRectFFIhasIntersectionFFIenclosePointsFFIsetPixelFormatPaletteFFIsetPaletteColorsFFIpixelFormatEnumToMasksFFImasksToPixelFormatEnumFFI mapRGBAFFI mapRGBFFI getRGBAFFI getRGBFFIgetPixelFormatNameFFIfreePaletteFFI freeFormatFFIcalculateGammaRampFFIallocPaletteFFIallocFormatFFIupdateYUVTextureFFIupdateTextureFFIunlockTextureFFIsetTextureColorModFFIsetTextureBlendModeFFIsetTextureAlphaModFFIsetRenderTargetFFIsetRenderDrawColorFFIsetRenderDrawBlendModeFFIrenderTargetSupportedFFIrenderSetViewportFFIrenderSetScaleFFIrenderSetLogicalSizeFFIrenderSetClipRectFFIrenderReadPixelsFFIrenderPresentFFIrenderGetViewportFFIrenderGetScaleFFIrenderGetLogicalSizeFFIrenderGetClipRectFFIrenderFillRectsFFIrenderFillRectFFIrenderDrawRectsFFIrenderDrawRectFFIrenderDrawPointsFFIrenderDrawPointFFIrenderDrawLinesFFIrenderDrawLineFFIrenderCopyExFFI renderCopyFFIrenderClearFFIqueryTextureFFIlockTextureFFIgetTextureColorModFFIgetTextureBlendModeFFIgetTextureAlphaModFFIgetRendererOutputSizeFFIgetRendererInfoFFIgetRendererFFIgetRenderTargetFFIgetRenderDriverInfoFFIgetRenderDrawColorFFIgetRenderDrawBlendModeFFIgetNumRenderDriversFFIdestroyTextureFFIdestroyRendererFFIcreateTextureFromSurfaceFFIcreateTextureFFIcreateSoftwareRendererFFIcreateRendererFFI videoQuitFFI videoInitFFIupdateWindowSurfaceRectsFFIupdateWindowSurfaceFFI showWindowFFIshowSimpleMessageBoxFFIshowMessageBoxFFIsetWindowTitleFFIsetWindowSizeFFIsetWindowPositionFFIsetWindowMinimumSizeFFIsetWindowMaximumSizeFFIsetWindowIconFFIsetWindowGrabFFIsetWindowGammaRampFFIsetWindowFullscreenFFIsetWindowDisplayModeFFIsetWindowDataFFIsetWindowBrightnessFFIsetWindowBorderedFFIrestoreWindowFFIraiseWindowFFIminimizeWindowFFImaximizeWindowFFIisScreenSaverEnabledFFI hideWindowFFIgetWindowTitleFFIgetWindowSurfaceFFIgetWindowSizeFFIgetWindowPositionFFIgetWindowPixelFormatFFIgetWindowMinimumSizeFFIgetWindowMaximumSizeFFIgetWindowIDFFIgetWindowGrabFFIgetWindowGammaRampFFIgetWindowFromIDFFIgetWindowFlagsFFIgetWindowDisplayModeFFIgetWindowDisplayIndexFFIgetWindowDataFFIgetWindowBrightnessFFIgetVideoDriverFFIgetNumVideoDriversFFIgetNumVideoDisplaysFFIgetNumDisplayModesFFIgetDisplayNameFFIgetDisplayModeFFIgetDisplayBoundsFFIgetDesktopDisplayModeFFIgetCurrentVideoDriverFFIgetCurrentDisplayModeFFIgetClosestDisplayModeFFIglUnloadLibraryFFIglUnbindTextureFFIglSwapWindowFFIglSetSwapIntervalFFIglSetAttributeFFIglResetAttributesFFIglMakeCurrentFFIglLoadLibraryFFIglGetSwapIntervalFFIglGetProcAddressFFIglGetDrawableSizeFFIglGetCurrentWindowFFIglGetCurrentContextFFIglGetAttributeFFIglExtensionSupportedFFIglDeleteContextFFIglCreateContextFFIglBindTextureFFIenableScreenSaverFFIdisableScreenSaverFFIdestroyWindowFFIcreateWindowFromFFIcreateWindowAndRendererFFIcreateWindowFFIunlockAudioDeviceFFIunlockAudioFFIpauseAudioDeviceFFI pauseAudioFFIopenAudioDeviceFFI openAudioFFImixAudioFormatFFI mixAudioFFIlockAudioDeviceFFI lockAudioFFI loadWAV_RWFFIgetNumAudioDriversFFIgetNumAudioDevicesFFIgetCurrentAudioDriverFFIgetAudioStatusFFIgetAudioDriverFFIgetAudioDeviceStatusFFIgetAudioDeviceNameFFI freeWAVFFIconvertAudioFFIcloseAudioDeviceFFI closeAudioFFIbuildAudioCVTFFI audioQuitFFI audioInitFFIghc-prim GHC.TypesBool$fToNumberKeyModifierWord32$fFromNumberKeyModifierWord32throwIfthrowIf_ throwIfNeg throwIfNeg_ throwIfNullthrowIf0 throwIfNot0 throwIfNot0_fromC$fExceptionSDLExceptionGHC.WordWord16Word8StateVarGHC.BaseNothingvecto_A9qWf1eecPQGJD12EBZIxFData.Vector.StorableVectorunmanagedSurfacemanagedSurfacefromRawRendererInfo$fToNumberRendererConfigWord32 $fFromNumberRendererConfigWord32$fToNumberPixelFormatWord32$fFromNumberPixelFormatWord32$fStorableRectangle$fToNumberBlendModeWord32$fFromNumberBlendModeWord32$fToNumberTextureAccessCInt$fFromNumberTextureAccessCInt WarpInWindowWarpCurrentFocus unwrapCursorFalseTrue$fFromNumberMouseDeviceWord32linea_3G1xpFJNInA5zuCs5II83u Linear.V4V4$fFromNumberSwapIntervalCInt$fToNumberSwapIntervalCInt Linear.V3V3$fToNumberMessageKindWord32$fFromNumberWindowModeWord32$fToNumberWindowModeWord32runTimerRemoval HasGetter HasSettermapHint_setHint hintToString$fHasGetterHintv$fHasSetterHintvccharStringToText fromRawKeysym convertRawData.Vector.Storable.MutableMVector AnAudioFormatDictencodeAudioFormatdecodeAudioFormat encodeUsagefoldChangeableunpackChangeableGHC.EnumminBoundmaxBound$fToNumberInitFlagWord32