{"id":13410805,"url":"https://github.com/ada-game-framework/sdlada","last_synced_at":"2025-12-17T03:56:12.933Z","repository":{"id":13621421,"uuid":"16314652","full_name":"ada-game-framework/sdlada","owner":"ada-game-framework","description":"Ada 2022 bindings to SDL 2","archived":false,"fork":false,"pushed_at":"2025-07-24T10:22:27.000Z","size":1064,"stargazers_count":126,"open_issues_count":23,"forks_count":35,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-12-10T00:42:29.596Z","etag":null,"topics":["ada","ada2012","bindings","game","game-development","gamedev","linux","macosx","portable-library","sdl","sdl-ttf","sdl2","sdl2-image","sdl2-library","windows"],"latest_commit_sha":null,"homepage":"","language":"Ada","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ada-game-framework.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-01-28T14:50:34.000Z","updated_at":"2025-12-09T13:12:24.000Z","dependencies_parsed_at":"2024-07-09T02:15:42.669Z","dependency_job_id":"12e185b3-cbec-4b6d-97e2-bf16c68f2930","html_url":"https://github.com/ada-game-framework/sdlada","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/ada-game-framework/sdlada","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ada-game-framework%2Fsdlada","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ada-game-framework%2Fsdlada/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ada-game-framework%2Fsdlada/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ada-game-framework%2Fsdlada/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ada-game-framework","download_url":"https://codeload.github.com/ada-game-framework/sdlada/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ada-game-framework%2Fsdlada/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27776776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-17T02:00:08.291Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ada","ada2012","bindings","game","game-development","gamedev","linux","macosx","portable-library","sdl","sdl-ttf","sdl2","sdl2-image","sdl2-library","windows"],"created_at":"2024-07-30T20:01:09.401Z","updated_at":"2025-12-17T03:56:12.918Z","avatar_url":"https://github.com/ada-game-framework.png","language":"Ada","funding_links":[],"categories":["Libraries","Bindings"],"sub_categories":["Graphics and Multimedia"],"readme":" # SDLAda\n\nThis is a new variable thickness Ada 2012 binding to SDL 2.x.y (http://www.libsdl.org). This means that things are\nwrapped when they need to be into a thicker binding and those things that can just be imported, are.\n\nThere will still be a need to use conditional compilation for the various platforms as there will be\nsome platform specifics which cannot be abstracted out cleanly, but this will be reduced as much as possible.\n\nThe bindings are only generated for the specific parts of SDL which Ada does not already have support for, i.e.\nthreads are not bound as Ada has tasking support built in.\n\n## Usage, Licence \u0026 Attribution\n\nSDLAda is distributed under the same zlib licence as the SDL library is. You may use this library in any way\nyou like whether free or commercial. I would add that whilst you don't have to state that your game uses this\nlibrary, it would be nice if you did, it's all good advertising for Ada :)\n\nYou do not need to complete any copyright assignment forms, the licence will not change from zlib as I want people to be\nable to use the library however they wish without restrictions.\n\n## Building\n\n### Makefile\n\nThis was originally built with the idea that there could be different compilers and their build scripts would go into a ```build/\u003ccompiler\u003e``` directory. This can still be built with the makefile, the subsequent extracted components cannot.\n\nThere are a number of variables which can be set to control the compilation:\n\n* SDL_PLATFORM = Can be set to one of the following values: linux, windows, macosx, macos_homebrew, ios or android\n* SDL_MODE     = Can be one of: debug or release. Defaults to debug.\n\n```\ncd build/gnat\nmake SDL_PLATFORM=linux SDL_MODE=release\n```\n\n### Alire\n\nYou can build the library with Alire now, by calling the following in the root directory:\n\n```\nalr build\n```\n\nThis seems to have come up as an issue, people not checking the original makefile on [lines 29 and 93](./build/gnat/makefile) on how to link SDLAda. SDL2 comes with the ```sdl2-config``` command which includes the following options:\n\n```bash\n$ sdl2-config --help\nUsage: /usr/bin/sdl2-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs]\n\n$ sdl2-config --cflags\n-I/usr/include/SDL2 -D_REENTRANT\n\n$ sdl2-config --libs\n-L/usr/lib64 -lSDL2\n```\n\nThese options will differ depending on operating system. SDL3 seems like it might operate in a bit more of a portable way.\n\n#### Linking\n\nTo link an application with sdlada, you will need to add ```-largs $(sdl2-config --libs)``` to command line:\n\n```bash\n$ cd \u003cgame|app dir\u003e\n$ alr build -- -largs $(sdl2-config --libs)\n```\n\nYou'll also need to add ```-lSDL2_image```, ```-lSDL2_ttf``` and ```-lSDL2_mixer``` for your platform. TODO: Fix this.\n\nThis will only be required for the time being.\n\n#### Get the latest verion with Alire\n\nAs the source is going through changes right now, they are not in the Alire index, yet, so grab it with:\n\n```bash\nalr with sdlada --use=https://github.com/ada-game-framework/sdlada.git\n```\n\nThis doesn't require the previous section on linking.\n\n#### MacOS\n\nSDLAda's alire.toml is set up to use the Homebrew and MacPorts distributions, so you need to install the dependencies first.\n\n##### Home Brew\n\n```\nbrew install sdl2\nbrew install sdl2_ttf\nbrew install sdl2_image\nbrew install sdl2_mixer\n```\n\n##### Mac Ports\n\n```\nsudo port install libsdl2\nsudo port install libsdl2_ttf\nsudo port install libsdl2_image\nsudo port install libsdl2_mixer\n```\n\n## Installation\n\n```\nmake SDL_PLATFORM=linux SDL_MODE=release DESTDIR=$HOME/opt/sdlada install\n```\n\n## Windows issues\n\nIf you get an error about an entry point which cannot be found within the DLL, make sure you don't have \nany other SDL installations somewhere in your PATH messing with the libs installed by MSYS' pacman (via Alire).\n\n## Examples\n\nYou can find more examples hosted on [Rosetta Code](http://www.rosettacode.org/wiki/Category:SDLAda).\n\n## Screenshots\n\n![stream2](./screenshots/stream2.png)\n![ttf](./screenshots/ttf.png)\n![surface](./screenshots/surface.png)\n\n## Copyright notice\n\nSee [LICENCE](./LICENCE) file.\n\n## Thanks to\n\nTo everyone who has provided patches, pull requests, typo fixes, etc.\n\n## WARNING!!!\n\nI have tried to model the types correctly, but remember SDL is a C library and some things may not make sense. Please\nfile a bug report if you use this library and find that a type does not cover enough values for cross-platform use.\n\n## TODO\n\nAnything listed here is a question of whether it's required.\n\n* Do we need to hook into the Assert module? To raise an exception maybe?\n* Create event tagged type hierarchy, use Poll to convert the C events into these types.\n* Task safe event handling?\n* Split Image, TTF into separate GPR files.\n* Cross platform testing.\n* Optimisations to make the library as thin as possible:\n  - Enable -gnatN for inlining.\n  - Try to get as much pre-elaborated as possible.\n* Disable a shared library build, make it a static only build, this makes it easier to distribute. i.e. Link with this\n  library and distribute SDL2 libs only.\n* Hide the RWops stuff maybe? Should really be using Ada streams and files.\n\n## [Current version](http://www.semver.org)\n\nSee [alire.toml](./alire.toml)\n\n## Versions tested against\n\nLibrary   | Version\n----------|--------\nSDL       | 2.28.5\nSDL_image | 2.6.3\nSDL_mixer | 2.6.3\nSDL_ttf   | 2.20.2\n\n## Status\n\n### SDL Core\n\n#### Init / Shutdown\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_Init                              |   y   |        |\nSDL_InitSubSystem                     |   y   |        |\nSDL_Quit                              |   y   |        |\nSDL_QuitRequested                     |   n   |        |\nSDL_QuitSubSystem                     |   y   |        |\nSDL_SetMainReady                      |   n   |        |\nSDL_WasInit                           |   y   |        |\nSDL_WinRTRunApp                       |   n   |        |\n\n#### Configuration Variables\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_AddHintCallback                   |   n   |        |\nSDL_ClearHints                        |   y   |        |\nSDL_DelHintCallback                   |   n   |        |\nSDL_GetHint                           |   y   |        |\nSDL_GetHintBoolean                    |   n   |        |\nSDL_ResetHint                         |   n   | 2.24.0 |\nSDL_ResetHints                        |   n   | 2.26.0 |\nSDL_SetHint                           |   y   |        |\nSDL_SetHintWithPriority               |   y   |        |\n\n#### Error Handling\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_ClearError                        |   y   |        |\nSDL_GetError                          |   y   |        |\nSDL_GetErrorMsg                       |   y   |        |\nSDL_SetError                          |   y   |        |\n\n#### Log Handling\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_Log                               |   y   |        |\nSDL_LogCritical                       |   y   |        |\nSDL_LogDebug                          |   y   |        |\nSDL_LogError                          |   y   |        |\nSDL_LogGetOutputFunction              |   n   |        |\nSDL_LogGetPriority                    |   n   |        |\nSDL_LogInfo                           |   y   |        |\nSDL_LogMessage                        |   y   |        |\nSDL_LogMessageV                       |   n   |        |\nSDL_LogResetPriorities                |   y   |        |\nSDL_LogSetAllPriority                 |   y   |        |\nSDL_LogSetOutputFunction              |   n   |        |\nSDL_LogSetPriority                    |   y   |        |\nSDL_LogVerbose                        |   y   |        |\nSDL_LogWarn                           |   y   |        |\n\n#### Assertions\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_assert                            |   n   |        |\nSDL_assert_paranoid                   |   n   |        |\nSDL_assert_release                    |   n   |        |\nSDL_GetAssertionHandler               |   n   |        |\nSDL_GetAssertionReport                |   n   |        |\nSDL_GetDefaultAssertionHandler        |   n   |        |\nSDL_ResetAssertionReport              |   n   |        |\nSDL_SetAssertionHandler               |   n   |        |\nSDL_TriggerBreakpoint                 |   n   |        |\n\n#### Querying SDL Version\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_COMPILEDVERSION                   |   n   |        |      *\nSDL_GetRevision                       |   y   |        |\nSDL_GetRevisionNumber                 |   y   |        |\nSDL_GetVersion                        |   y   |        |\nSDL_REVISION                          |   n   |        |      *\nSDL_VERSION                           |   n   |        |      *\nSDL_VERSIONNUM                        |   n   |        |      *\nSDL_VERSION_ATLEAST                   |   n   |        |      *\n\n#### Display and Window Management\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_CreateWindow                      |   y   |        |\nSDL_CreateWindowFrom                  |   y   |        |\nSDL_DestroyWindow                     |   y   |        |\nSDL_DestroyWindowSurface              |   n   | 2.28.0 |\nSDL_DisableScreenSaver                |   y   |        |\nSDL_EnableScreenSaver                 |   y   |        |\nSDL_FlashWindow                       |   n   | 2.0.16 |\nSDL_GetClosestDisplayMode             |   y   |        |\nSDL_GetCurrentDisplayMode             |   y   |        |\nSDL_GetCurrentVideoDriver             |   y   |        |\nSDL_GetDesktopDisplayMode             |   y   |        |\nSDL_GetDisplayBounds                  |   y   |        |\nSDL_GetDisplayDPI                     |   y   | 2.0.4  |\nSDL_GetDisplayMode                    |   y   |        |\nSDL_GetDisplayName                    |   y   |        |\nSDL_GetDisplayOrientation             |   y   | 2.0.9  |\nSDL_GetDisplayUsableBounds            |   y   | 2.0.5  |\nSDL_GetGrabbedWindow                  |   n   | 2.0.4  |\nSDL_GetNumDisplayModes                |   y   |        |\nSDL_GetNumVideoDisplays               |   y   |        |\nSDL_GetNumVideoDrivers                |   y   |        |\nSDL_GetPointDisplayIndex              |   y   | 2.24.0 |\nSDL_GetRectDisplayIndex               |   n   | 2.24.0 |\nSDL_GetVideoDriver                    |   y   |        |\nSDL_GetWindowBordersSize              |   n   | 2.0.5  |\nSDL_GetWindowBrightness               |   y   |        |\nSDL_GetWindowData                     |   y   |        |\nSDL_GetWindowDisplayIndex             |   y   |        |\nSDL_GetWindowDisplayMode              |   y   |        |\nSDL_GetWindowFlags                    |   y   |        |\nSDL_GetWindowFromID                   |   y   |        |\nSDL_GetWindowGammaRamp                |   y   |        |\nSDL_GetWindowGrab                     |   y   |        |\nSDL_GetWindowICCProfile               |   n   | 2.0.18 |\nSDL_GetWindowID                       |   y   |        |\nSDL_GetWindowKeyboardGrab             |   n   | 2.0.16 |\nSDL_GetWindowMaximumSize              |   y   |        |\nSDL_GetWindowMinimumSize              |   y   |        |\nSDL_GetWindowMouseGrab                |   n   | 2.0.16 |\nSDL_GetWindowMouseRect                |   n   | 2.0.18 |\nSDL_GetWindowOpacity                  |   n   | 2.0.5  |\nSDL_GetWindowPixelFormat              |   y   |        |\nSDL_GetWindowPosition                 |   y   |        |\nSDL_GetWindowSize                     |   y   |        |\nSDL_GetWindowSizeInPixels             |   n   | 2.26.0 |\nSDL_GetWindowSurface                  |   y   |        |\nSDL_GetWindowTitle                    |   y   |        |\nSDL_GL_CreateContext                  |   y   |        |\nSDL_GL_DeleteContext                  |   y   |        |\nSDL_GL_ExtensionSupported             |   y   |        |\nSDL_GL_GetAttribute                   |   y   |        |\nSDL_GL_GetCurrentContext              |   y   |        |\nSDL_GL_GetCurrentWindow               |   n   |        |\nSDL_GL_GetDrawableSize                |   y   |        |\nSDL_GL_GetProcAddress                 |   y   |        |\nSDL_GL_GetSwapInterval                |   y   |        |\nSDL_GL_LoadLibrary                    |   y   |        |\nSDL_GL_MakeCurrent                    |   y   |        |\nSDL_GL_ResetAttributes                |   y   |        |\nSDL_GL_SetAttribute                   |   y   |        |\nSDL_GL_SetSwapInterval                |   y   |        |\nSDL_GL_SwapWindow                     |   y   |        |\nSDL_GL_UnloadLibrary                  |   y   |        |\nSDL_HasWindowSurface                  |   n   | 2.28.0 |\nSDL_HideWindow                        |   y   |        |\nSDL_IsScreenSaverEnabled              |   y   |        |\nSDL_MaximizeWindow                    |   y   |        |\nSDL_MinimizeWindow                    |   y   |        |\nSDL_RaiseWindow                       |   y   |        |\nSDL_RestoreWindow                     |   y   |        |\nSDL_SetWindowAlwaysOnTop              |   n   | 2.0.16 |\nSDL_SetWindowBordered                 |   n   |        |\nSDL_SetWindowBrightness               |   y   |        |\nSDL_SetWindowData                     |   y   |        |\nSDL_SetWindowDisplayMode              |   y   |        |\nSDL_SetWindowFullscreen               |   y   |        |\nSDL_SetWindowGammaRamp                |   y   |        |\nSDL_SetWindowGrab                     |   y   |        |\nSDL_SetWindowHitTest                  |   n   |        |\nSDL_SetWindowIcon                     |   y   |        |\nSDL_SetWindowInputFocus               |   n   | 2.0.5  |\nSDL_SetWindowKeyboardGrab             |   n   | 2.0.16 |\nSDL_SetWindowMaximumSize              |   y   |        |\nSDL_SetWindowMinimumSize              |   y   |        |\nSDL_SetWindowModalFor                 |   n   | 2.0.5  |\nSDL_SetWindowMouseGrab                |   n   | 2.0.16 |\nSDL_SetWindowMouseRect                |   n   | 2.0.18 |\nSDL_SetWindowOpacity                  |   n   | 2.0.5  |\nSDL_SetWindowPosition                 |   y   |        |\nSDL_SetWindowResizable                |   n   | 2.0.5  |\nSDL_SetWindowSize                     |   y   |        |\nSDL_SetWindowTitle                    |   y   |        |\nSDL_ShowWindow                        |   y   |        |\nSDL_UpdateWindowSurface               |   n   |        |\nSDL_UpdateWindowSurfaceRects          |   y   |        |\nSDL_VideoInit                         |   y   |        |\nSDL_VideoQuit                         |   y   |        |\n\n#### 2D Accelerated Rendering\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_CreateRenderer                    |   y   |        |\nSDL_CreateSoftwareRenderer            |   y   |        |\nSDL_CreateTexture                     |   y   |        |\nSDL_CreateTextureFromSurface          |   y   |        |\nSDL_CreateWindowAndRenderer           |   n   |        |\nSDL_DestroyRenderer                   |   y   |        |\nSDL_DestroyTexture                    |   y   |        |\nSDL_GetNumRenderDrivers               |   y   |        |\nSDL_GetRenderDrawBlendMode            |   y   |        |\nSDL_GetRenderDrawColor                |   y   |        |\nSDL_GetRenderDriverInfo               |   y   |        |\nSDL_GetRenderer                       |   y   |        |\nSDL_GetRendererInfo                   |   y   |        |\nSDL_GetRendererOutputSize             |   y   |        |\nSDL_GetRenderTarget                   |   n   |        |\nSDL_GetTextureAlphaMod                |   y   |        |\nSDL_GetTextureBlendMode               |   y   |        |\nSDL_GetTextureColorMod                |   y   |        |\nSDL_GetTextureScaleMode               |   y   | 2.0.12 |\nSDL_GetTextureUserData                |   n   | 2.0.18 |\nSDL_GL_BindTexture                    |   y   |        |\nSDL_GL_UnbindTexture                  |   y   |        |\nSDL_LockTexture                       |   y   |        |\nSDL_LockTextureToSurface              |   n   | 2.0.12 |\nSDL_QueryTexture                      |   y   |        |\nSDL_RenderClear                       |   y   |        |\nSDL_RenderCopy                        |   y   |        |\nSDL_RenderCopyEx                      |   y   |        |\nSDL_RenderCopyExF                     |   y   | 2.0.10 |\nSDL_RenderCopyF                       |   y   | 2.0.10 |\nSDL_RenderDrawLine                    |   y   |        |\nSDL_RenderDrawLineF                   |   y   | 2.0.10 |\nSDL_RenderDrawLines                   |   y   |        |\nSDL_RenderDrawLinesF                  |   y   | 2.0.10 |\nSDL_RenderDrawPoint                   |   y   |        |\nSDL_RenderDrawPointF                  |   y   | 2.0.10 |\nSDL_RenderDrawPoints                  |   y   |        |\nSDL_RenderDrawPointsF                 |   y   | 2.0.10 |\nSDL_RenderDrawRect                    |   y   |        |\nSDL_RenderDrawRectF                   |   y   | 2.0.10 |\nSDL_RenderDrawRects                   |   y   |        |\nSDL_RenderDrawRectsF                  |   y   | 2.0.10 |\nSDL_RenderFillRect                    |   y   |        |\nSDL_RenderFillRectF                   |   y   | 2.0.10 |\nSDL_RenderFillRects                   |   y   |        |\nSDL_RenderFillRectsF                  |   y   | 2.0.10 |\nSDL_RenderFlush                       |   y   | 2.0.10 |\nSDL_RenderGeometry                    |   y   | 2.0.18 |\nSDL_RenderGeometryRAW                 |   n   | 2.0.18 |\nSDL_RenderGetClipRect                 |   y   |        |\nSDL_RenderGetIntegerScale             |   y   | 2.0.5  |\nSDL_RenderGetLogicalSize              |   y   |        |\nSDL_RenderGetMetalCommandEncoder      |   n   | 2.0.8  |\nSDL_RenderGetMetalLayer               |   n   | 2.0.8  |\nSDL_RenderGetScale                    |   y   |        |\nSDL_RenderGetViewport                 |   y   |        |\nSDL_RenderGetWindow                   |   y   | 2.0.22 |\nSDL_RenderIsClipEnabled               |   n   |        |\nSDL_RenderLogicalToWindow             |   y   | 2.0.18 |\nSDL_RenderPresent                     |   y   |        |\nSDL_RenderReadPixels                  |   n   |        |\nSDL_RenderSetClipRect                 |   y   |        |\nSDL_RenderSetIntegerScale             |   y   | 2.0.5  |\nSDL_RenderSetLogicalSize              |   y   |        |\nSDL_RenderSetScale                    |   y   |        |\nSDL_RenderSetViewport                 |   y   |        |\nSDL_RenderSetVSync                    |   n   | 2.0.18 |\nSDL_RenderTargetSupported             |   y   |        |\nSDL_RenderWindowToLogical             |   y   | 2.0.18 |\nSDL_SetRenderDrawBlendMode            |   y   |        |\nSDL_SetRenderDrawColor                |   y   |        |\nSDL_SetRenderTarget                   |   y   |        |\nSDL_SetTextureAlphaMod                |   y   |        |\nSDL_SetTextureBlendMode               |   y   |        |\nSDL_SetTextureColorMod                |   y   |        |\nSDL_SetTextureScaleMode               |   y   | 2.0.12 |\nSDL_SetTextureUserData                |   n   | 2.0.18 |\nSDL_UnlockTexture                     |   y   |        |\nSDL_UpdateNVTexture                   |   n   | 2.0.16 |\nSDL_UpdateTexture                     |   n   | 2.0.0  |\nSDL_UpdateYUVTexture                  |   n   | 2.0.1  |\n\n#### Pixel Formats and Conversion Routines\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_AllocFormat                       |   y   |        |\nSDL_AllocPalette                      |   y   |        |\nSDL_CalculateGammaRamp                |   y   |        |\nSDL_FreeFormat                        |   y   |        |\nSDL_FreePalette                       |   y   |        |\nSDL_GetPixelFormatName                |   y   |        |\nSDL_GetRGB                            |   y   |        |\nSDL_GetRGBA                           |   y   |        |\nSDL_MapRGB                            |   y   |        |\nSDL_MapRGBA                           |   y   |        |\nSDL_MasksToPixelFormatEnum            |   y   |        |\nSDL_PixelFormatEnumToMasks            |   y   |        |\nSDL_SetPaletteColors                  |   n   |        |\nSDL_SetPixelFormatPalette             |   n   |        |\n\n#### Rectangle Functions\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_EncloseFPoints                    |   y   | 2.0.22 |\nSDL_EnclosePoints                     |   y   |        |\nSDL_FRectEmpty                        |   y   | ?      |\nSDL_FRectEquals                       |   y   | 2.0.22 |\nSDL_FRectEqualsEpsilon                |   y   | 2.0.22 |\nSDL_HasIntersection                   |   y   |        |\nSDL_HasIntersectionF                  |   y   | 2.0.22 |\nSDL_IntersectFRect                    |   y   | 2.0.22 |\nSDL_IntersectFRectAndLine             |   y   | 2.0.22 |\nSDL_IntersectRect                     |   y   |        |\nSDL_IntersectRectAndLine              |   y   |        |\nSDL_PointInFRect                      |   y   | ?      |\nSDL_PointInRect                       |   y   | ?      |\nSDL_RectEmpty                         |   y   | ?      |\nSDL_RectEquals                        |   n   | ?      | *\nSDL_UnionFRect                        |   y   | 2.0.22 |\nSDL_UnionRect                         |   y   |        |\n\n#### Surface Creation and Simple Drawing\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_BlitScaled                        |   y   |        |\nSDL_BlitSurface                       |   y   |        |\nSDL_ConvertPixels                     |   n   | 2.0.0  |\nSDL_ConvertSurface                    |   y   | 2.0.0  |\nSDL_ConvertSurfaceFormat              |   n   | 2.0.0  |\nSDL_CreateRGBSurface                  |   y   | 2.0.0  |\nSDL_CreateRGBSurfaceFrom              |   n   | 2.0.0  |\nSDL_CreateRGBSurfaceWithFormat        |   n   | 2.0.5  |\nSDL_CreateRGBSurfaceWithFormatFrom    |   n   | 2.0.5  |\nSDL_FillRect                          |   y   |        |\nSDL_FillRects                         |   y   |        |\nSDL_FreeSurface                       |   y   |        |\nSDL_GetClipRect                       |   y   |        |\nSDL_GetColorKey                       |   y   |        |\nSDL_GetSurfaceAlphaMod                |   y   |        |\nSDL_GetSurfaceBlendMode               |   y   |        |\nSDL_GetSurfaceColorMod                |   y   |        |\nSDL_GetYUVConversionMode              |   n   | 2.0.8  |\nSDL_GetYUVConversionModeForResolution |   n   | 2.0.8  |\nSDL_HasColorKey                       |   n   | 2.0.9  |\nSDL_HasSurfaceRLE                     |   n   | 2.0.14 |\nSDL_LoadBMP                           |   y   |        |\nSDL_LoadBMP_RW                        |   y   |        |\nSDL_LockSurface                       |   y   |        |\nSDL_LowerBlit                         |   y   |        |\nSDL_LowerBlitScaled                   |   y   |        |\nSDL_MUSTLOCK                          |   y   |        | TODO: Function expression.\nSDL_PremultiplyAlpha                  |   n   | 2.0.18 |\nSDL_SaveBMP                           |   n   |        |\nSDL_SaveBMP_RW                        |   n   |        |\nSDL_SetClipRect                       |   y   |        |\nSDL_SetColorKey                       |   y   |        |\nSDL_SetSurfaceAlphaMod                |   y   |        |\nSDL_SetSurfaceBlendMode               |   y   |        |\nSDL_SetSurfaceColorMod                |   y   |        |\nSDL_SetSurfacePalette                 |   n   |        |\nSDL_SetSurfaceRLE                     |   y   |        |\nSDL_SetYUVConversionMode              |   n   | 2.0.8  |\nSDL_SoftStretch                       |   n   | 2.0.0  |\nSDL_SoftStretchLinear                 |   n   | 2.0.16 |\nSDL_UnlockSurface                     |   y   |        |\nSDL_UpperBlit                         |   n   | 2.0.0  |\nSDL_UpperBlitScaled                   |   n   | 2.0.0  |\n\n#### Platform-specific Window Management\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_GetWindowWMInfo                   |   y   |        |\n\n#### Clipboard Handling\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_GetClipboardText                  |   y   |        |\nSDL_GetPrimarySelectionText           |   n   | 2.26.0 |\nSDL_HasClipboardText                  |   y   |        |\nSDL_HasPrimarySelectionText           |   n   | 2.26.0 |\nSDL_SetClipboardText                  |   y   |        |\nSDL_SetPrimarySelectionText           |   n   | 2.26.0 |\n\n#### Vulkan Support\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_Vulkan_CreateSurface              |   y   | 2.0.6  |\nSDL_Vulkan_GetDrawableSize            |   y   | 2.0.6  |\nSDL_Vulkan_GetInstanceExtensions      |   y   | 2.0.6  |\nSDL_Vulkan_GetVkGetInstanceProcAddr   |   y   | 2.0.6  |\nSDL_Vulkan_LoadLibrary                |   y   | 2.0.6  |\nSDL_Vulkan_UnloadLibrary              |   y   | 2.0.6  |\n\n#### Metal Support\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_Metal_CreateView                  |   n   | 2.0.12 |\nSDL_Metal_DestroyView                 |   n   | 2.0.12 |\nSDL_Metal_GetDrawableSize             |   n   | 2.0.14 |\nSDL_Metal_GetLayer                    |   n   | 2.0.14 |\n\n#### Event Handling\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_AddEventWatch                     |   n   |        |\nSDL_DelEventWatch                     |   n   |        |\nSDL_EventState                        |   n   |        |\nSDL_FilterEvents                      |   n   |        |\nSDL_FlushEvent                        |   n   |        |\nSDL_FlushEvents                       |   n   |        |\nSDL_GetEventFilter                    |   n   |        |\nSDL_HasEvent                          |   n   |        |\nSDL_HasEvents                         |   n   |        |\nSDL_PeepEvents                        |   n   |        |\nSDL_PollEvent                         |   y   |        |\nSDL_PumpEvents                        |   n   |        |\nSDL_PushEvent                         |   n   |        |\nSDL_RegisterEvents                    |   n   |        |\nSDL_SetEventFilter                    |   n   |        |\nSDL_WaitEvent                         |   n   |        |\nSDL_WaitEventTimeout                  |   n   |        |\n\n#### Keyboard Support\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_ClearComposition                  |   y   | 2.0.22 |\nSDL_GetKeyboardFocus                  |   y   |        |\nSDL_GetKeyboardState                  |   y   |        |\nSDL_GetKeyFromName                    |   y   |        |\nSDL_GetKeyFromScancode                |   y   |        |\nSDL_GetKeyName                        |   y   |        |\nSDL_GetModState                       |   y   |        |\nSDL_GetScancodeFromKey                |   y   |        |\nSDL_GetScancodeFromName               |   y   |        |\nSDL_GetScancodeName                   |   y   |        |\nSDL_HasScreenKeyboardSupport          |   y   |        |\nSDL_IsScreenKeyboardShown             |   y   |        |\nSDL_IsTextInputActive                 |   y   |        |\nSDL_IsTextInputShown                  |   y   | 2.0.22 |\nSDL_ResetKeyboard                     |   y   | 2.24.0 |\nSDL_SetModState                       |   y   |        |\nSDL_SetTextInputRect                  |   y   |        |\nSDL_StartTextInput                    |   y   |        |\nSDL_StopTextInput                     |   y   |        |\n\n#### Mouse Support\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_CaptureMouse                      |   y   |        |\nSDL_CreateColorCursor                 |   n   |        |\nSDL_CreateCursor                      |   n   |        |\nSDL_CreateSystemCursor                |   y   |        |\nSDL_FreeCursor                        |   y   |        |\nSDL_GetCursor                         |   y   |        |\nSDL_GetDefaultCursor                  |   n   |        |\nSDL_GetGlobalMouseState               |   y   |        |\nSDL_GetMouseFocus                     |   n   |        |\nSDL_GetMouseState                     |   y   |        |\nSDL_GetRelativeMouseMode              |   y   |        |\nSDL_GetRelativeMouseState             |   y   |        |\nSDL_SetCursor                         |   y   |        |\nSDL_SetRelativeMouseMode              |   y   |        |\nSDL_ShowCursor                        |   n   |        |\nSDL_WarpMouseGlobal                   |   y   |        |\nSDL_WarpMouseInWindow                 |   y   |        |\n\n#### Joystick Support\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_GetJoystickGUIDInfo               |   n   | 2.26.0 |\nSDL_JoystickAttachVirtual             |   n   | 2.0.14 |\nSDL_JoystickAttachVirtualEx           |   n   | 2.24.0 |\nSDL_JoystickClose                     |   y   |        |\nSDL_JoystickCurrentPowerLevel         |   n   | 2.0.4  |\nSDL_JoystickDetachVirtual             |   n   | 2.0.14 |\nSDL_JoystickEventState                |   y   |        |\nSDL_JoystickFromInstanceID            |   n   |        |\nSDL_JoystickFromPlayerIndex           |   n   | 2.0.12 |\nSDL_JoystickGetAttached               |   y   |        |\nSDL_JoystickGetAxis                   |   y   |        |\nSDL_JoystickGetAxisInitialState       |   n   | 2.0.6  |\nSDL_JoystickGetBall                   |   y   |        |\nSDL_JoystickGetButton                 |   y   |        |\nSDL_JoystickGetDeviceGUID             |   y   |        |\nSDL_JoystickGetDeviceInstanceID       |   n   | 2.0.6  |\nSDL_JoystickGetDevicePlayerIndex      |   n   | 2.0.9  |\nSDL_JoystickGetDeviceProduct          |   n   | 2.0.6  |\nSDL_JoystickGetDeviceProductVersion   |   n   | 2.0.6  |\nSDL_JoystickGetDeviceType             |   n   | 2.0.6  |\nSDL_JoystickGetDeviceVendor           |   n   | 2.0.6  |\nSDL_JoystickGetFirmwareVersion        |   n   | 2.24.0 |\nSDL_JoystickGetGUID                   |   y   |        |\nSDL_JoystickGetGUIDFromString         |   y   |        |\nSDL_JoystickGetGUIDString             |   y   |        |\nSDL_JoystickGetHat                    |   y   |        |\nSDL_JoystickGetPlayerIndex            |   n   | 2.0.9  |\nSDL_JoystickGetProduct                |   n   | 2.0.6  |\nSDL_JoystickGetProductVersion         |   n   | 2.0.6  |\nSDL_JoystickGetSerial                 |   n   | 2.0.14 |\nSDL_JoystickGetType                   |   n   | 2.0.6 |\nSDL_JoystickGetVendor                 |   n   | 2.0.6 |\nSDL_JoystickHasLED                    |   n   | 2.0.14 |\nSDL_JoystickHasRumble                 |   n   | 2.0.18 |\nSDL_JoystickHasRumbleTriggers         |   n   | 2.0.18 |\nSDL_JoystickInstanceID                |   y   |        |\nSDL_JoystickIsVirtual                 |   n   | 2.0.14 |\nSDL_JoystickName                      |   y   |        |\nSDL_JoystickNameForIndex              |   y   |        |\nSDL_JoystickNumAxes                   |   y   |        |\nSDL_JoystickNumBalls                  |   y   |        |\nSDL_JoystickNumButtons                |   y   |        |\nSDL_JoystickNumHats                   |   y   |        |\nSDL_JoystickOpen                      |   y   |        |\nSDL_JoystickPath                      |   n   | 2.24.0 |\nSDL_JoystickPathForIndex              |   n   | 2.24.0 |\nSDL_JoystickRumble                    |   n   | 2.0.9  |\nSDL_JoystickRumbleTriggers            |   n   | 2.0.14 |\nSDL_JoystickSendEffect                |   n   | 2.0.16 |\nSDL_JoystickSetLED                    |   n   | 2.0.14 |\nSDL_JoystickSetPlayerIndex            |   n   | 2.0.12 |\nSDL_JoystickSetVirtualAxis            |   n   | 2.0.14 |\nSDL_JoystickSetVirtualButton          |   n   | 2.0.14 |\nSDL_JoystickSetVirtualHat             |   n   | 2.0.14 |\nSDL_JoystickUpdate                    |   y   |        |\nSDL_LockJoysticks                     |   y   | 2.0.7  |\nSDL_NumJoysticks                      |   y   |        |\nSDL_UnlockJoysticks                   |   y   | 2.0.7  |\n\n#### Game Controller Support\n\nName                                             | Bound | Since  | Won't bind\n-------------------------------------------------|-------|--------|-----------\nSDL_GameControllerAddMapping                     |   y   |        |\nSDL_GameControllerAddMappingsFromFile            |   y   |        |\nSDL_GameControllerAddMappingsFromRW              |   n   |        |\nSDL_GameControllerClose                          |   y   |        |\nSDL_GameControllerEventState                     |   y   |        |\nSDL_GameControllerFromInstanceID                 |   n   | 2.0.4  |\nSDL_GameControllerFromPlayerIndex                |   n   | 2.0.12 |\nSDL_GameControllerGetAppleSFSymbolsNameForAxis   |   n   | 2.0.18 |\nSDL_GameControllerGetAppleSFSymbolsNameForButton |   n   | 2.0.18 |\nSDL_GameControllerGetAttached                    |   y   |        |\nSDL_GameControllerGetAxis                        |   y   |        |\nSDL_GameControllerGetAxisFromString              |   y   |        |\nSDL_GameControllerGetBindForAxis                 |   y   |        |\nSDL_GameControllerGetBindForButton               |   y   |        |\nSDL_GameControllerGetButton                      |   y   |        |\nSDL_GameControllerGetButtonFromString            |   y   |        |\nSDL_GameControllerGetFirmwareVersion             |   n   | 2.24.0 |\nSDL_GameControllerGetJoystick                    |   y   |        |\nSDL_GameControllerGetNumTouchpadFingers          |   n   | 2.0.14 |\nSDL_GameControllerGetNumTouchpads                |   n   | 2.0.14 |\nSDL_GameControllerGetPlayerIndex                 |   n   | 2.0.9  |\nSDL_GameControllerGetProduct                     |   n   | 2.0.6  |\nSDL_GameControllerGetProductVersion              |   n   | 2.0.6  |\nSDL_GameControllerGetSensorData                  |   n   | 2.0.14 |\nSDL_GameControllerGetSensorDataRate              |   n   | 2.0.16 |\nSDL_GameControllerGetSensorDataWithTimestamp     |   n   | 2.26.0 |\nSDL_GameControllerGetSerial                      |   n   | 2.0.14 |\nSDL_GameControllerGetSteamHandle                 |   n   | 2.30.0 |\nSDL_GameControllerGetStringForAxis               |   y   |        |\nSDL_GameControllerGetStringForButton             |   y   |        |\nSDL_GameControllerGetTouchpadFinger              |   n   | 2.0.14 |\nSDL_GameControllerGetType                        |   n   | 2.0.12 |\nSDL_GameControllerGetVendor                      |   n   | 2.0.6  |\nSDL_GameControllerHasAxis                        |   n   | 2.0.14 |\nSDL_GameControllerHasButton                      |   n   | 2.0.14 |\nSDL_GameControllerHasLED                         |   n   | 2.0.14 |\nSDL_GameControllerHasRumble                      |   n   | 2.0.18 |\nSDL_GameControllerHasRumbleTriggers              |   n   | 2.0.18 |\nSDL_GameControllerHasSensor                      |   n   | 2.0.14 |\nSDL_GameControllerIsSensorEnabled                |   n   | 2.0.14 |\nSDL_GameControllerMapping                        |   y   |        |\nSDL_GameControllerMappingForDeviceIndex          |   n   | 2.0.9  |\nSDL_GameControllerMappingForGUID                 |   y   |        |\nSDL_GameControllerMappingForIndex                |   n   | 2.0.6  |\nSDL_GameControllerName                           |   y   |        |\nSDL_GameControllerNameForIndex                   |   y   |        |\nSDL_GameControllerNumMappings                    |   n   | 2.0.6  |\nSDL_GameControllerOpen                           |   y   |        |\nSDL_GameControllerPath                           |   n   | 2.24.0 |\nSDL_GameControllerPathForIndex                   |   n   | 2.24.0 |\nSDL_GameControllerRumble                         |   n   | 2.0.9  |\nSDL_GameControllerRumbleTriggers                 |   n   | 2.0.14 |\nSDL_GameControllerSendEffect                     |   n   | 2.0.16 |\nSDL_GameControllerSetLED                         |   n   | 2.0.14 |\nSDL_GameControllerSetPlayerIndex                 |   n   | 2.0.12 |\nSDL_GameControllerSetSensorEnabled               |   n   | 2.0.14 |\nSDL_GameControllerTypeForIndex                   |   n   | 2.0.12 |\nSDL_GameControllerUpdate                         |   y   |        |\nSDL_IsGameController                             |   y   |        |\n\n#### Touch \u0026 Gesture\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_GetNumTouchDevices                |   n   |        |\nSDL_GetNumTouchFingers                |   n   |        |\nSDL_GetTouchDevice                    |   n   |        |\nSDL_GetTouchFinger                    |   n   |        |\nSDL_LoadDollarTemplates               |   n   |        |\nSDL_RecordGesture                     |   n   |        |\nSDL_SaveAllDollarTemplates            |   n   |        |\nSDL_SaveDollarTemplate                |   n   |        |\n\n#### Sensors\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_LockSensors                       |   n   | 2.0.14 |\nSDL_NumSensors                        |   n   | 2.0.9  |\nSDL_SensorClose                       |   n   | 2.0.9  |\nSDL_SensorFromInstanceID              |   n   | 2.0.9  |\nSDL_SensorGetData                     |   n   | 2.0.9  |\nSDL_SensorGetDataWithTimestamp        |   n   | 2.26.0 |\nSDL_SensorGetDeviceInstanceID         |   n   | 2.0.9  |\nSDL_SensorGetDeviceName               |   n   | 2.0.9  |\nSDL_SensorGetDeviceNonPortableType    |   n   | 2.0.9  |\nSDL_SensorGetDeviceType               |   n   | 2.0.9  |\nSDL_SensorGetInstanceID               |   n   | 2.0.9  |\nSDL_SensorGetName                     |   n   | 2.0.9  |\nSDL_SensorGetNonPortableType          |   n   | 2.0.9  |\nSDL_SensorGetType                     |   n   | 2.0.9  |\nSDL_SensorOpen                        |   n   | 2.0.9  |\nSDL_SensorUpdate                      |   n   | 2.0.9  |\n\n#### Force Feedback Support\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_HapticClose                       |   n   |        |\nSDL_HapticDestroyEffect               |   n   |        |\nSDL_HapticEffectSupported             |   n   |        |\nSDL_HapticGetEffectStatus             |   n   |        |\nSDL_HapticIndex                       |   n   |        |\nSDL_HapticName                        |   n   |        |\nSDL_HapticNewEffect                   |   n   |        |\nSDL_HapticNumAxes                     |   n   |        |\nSDL_HapticNumEffects                  |   n   |        |\nSDL_HapticNumEffectsPlaying           |   n   |        |\nSDL_HapticOpen                        |   n   | 2.0.0  |\nSDL_HapticOpened                      |   n   | 2.0.0  |\nSDL_HapticOpenFromJoystick            |   n   |        |\nSDL_HapticOpenFromMouse               |   n   |        |\nSDL_HapticPause                       |   n   |        |\nSDL_HapticQuery                       |   n   |        |\nSDL_HapticRumbleInit                  |   n   |        |\nSDL_HapticRumblePlay                  |   n   |        |\nSDL_HapticRumbleStop                  |   n   |        |\nSDL_HapticRumbleSupported             |   n   |        |\nSDL_HapticRunEffect                   |   n   |        |\nSDL_HapticSetAutocenter               |   n   |        |\nSDL_HapticSetGain                     |   n   |        |\nSDL_HapticStopAll                     |   n   |        |\nSDL_HapticStopEffect                  |   n   |        |\nSDL_HapticUnpause                     |   n   |        |\nSDL_HapticUpdateEffect                |   n   |        |\nSDL_JoystickIsHaptic                  |   y   |        |\nSDL_MouseIsHaptic                     |   n   |        |\nSDL_NumHaptics                        |   n   |        |\n\n#### Audio Device Management, Playing and Recording\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_AudioInit                         |   y   |        |\nSDL_AudioQuit                         |   y   |        |\nSDL_AudioStreamAvailable              |   n   | 2.0.7  |\nSDL_AudioStreamClear                  |   n   | 2.0.7  |\nSDL_AudioStreamFlush                  |   n   | 2.0.7  |\nSDL_AudioStreamGet                    |   n   | 2.0.7  |\nSDL_AudioStreamPut                    |   n   | 2.0.7  |\nSDL_BuildAudioCVT                     |   n   |        |\nSDL_ClearQueuedAudio                  |   y   |        |\nSDL_CloseAudio                        |   n   |        |\nSDL_CloseAudioDevice                  |   y   |        |\nSDL_ConvertAudio                      |   n   |        |\nSDL_DequeueAudio                      |   n   |        |\nSDL_FreeAudioStream                   |   n   | 2.0.7  |\nSDL_FreeWAV                           |   n   |        |\nSDL_GetAudioDeviceName                |   y   |        |\nSDL_GetAudioDeviceSpec                |   n   | 2.0.16 |\nSDL_GetAudioDeviceStatus              |   y   |        |\nSDL_GetAudioDriver                    |   y   |        |\nSDL_GetAudioStatus                    |   n   |        |\nSDL_GetCurrentAudioDriver             |   y   |        |\nSDL_GetDefaultAudioInfo               |   n   | 2.24.0 |\nSDL_GetNumAudioDevices                |   y   |        |\nSDL_GetNumAudioDrivers                |   y   |        |\nSDL_GetQueuedAudioSize                |   y   |        |\nSDL_LoadWAV                           |   n   |        |\nSDL_LoadWAV_RW                        |   n   |        |\nSDL_LockAudio                         |   n   |        |\nSDL_LockAudioDevice                   |   n   |        |\nSDL_MixAudio                          |   n   |        |\nSDL_MixAudioFormat                    |   n   |        |\nSDL_NewAudioStream                    |   n   | 2.0.7  |\nSDL_OpenAudio                         |   n   |        |\nSDL_OpenAudioDevice                   |   y   |        |\nSDL_PauseAudio                        |   n   |        |\nSDL_PauseAudioDevice                  |   y   |        |\nSDL_QueueAudio                        |   n   |        |\nSDL_UnlockAudio                       |   n   |        |\nSDL_UnlockAudioDevice                 |   n   |        |\n\n#### Thread Management\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_CreateThread                      |   n   |        |\nSDL_CreateThreadWithStackSize         |   n   | 2.0.9  |\nSDL_DetachThread                      |   n   |        |\nSDL_GetThreadID                       |   n   |        |\nSDL_GetThreadName                     |   n   |        |\nSDL_SetThreadPriority                 |   n   |        |\nSDL_ThreadID                          |   n   |        |\nSDL_TLSCleanup                        |   n   | 2.0.16 |\nSDL_TLSCreate                         |   n   |        |\nSDL_TLSGet                            |   n   |        |\nSDL_TLSSet                            |   n   |        |\nSDL_WaitThread                        |   n   |        |\n\n#### Thread Synchronization Primitives\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_CondBroadcast                     |   n   |        |\nSDL_CondSignal                        |   n   |        |\nSDL_CondWait                          |   n   |        |\nSDL_CondWaitTimeout                   |   n   |        |\nSDL_CreateCond                        |   n   |        |\nSDL_CreateMutex                       |   n   |        |\nSDL_CreateSemaphore                   |   n   |        |\nSDL_DestroyCond                       |   n   |        |\nSDL_DestroyMutex                      |   n   |        |\nSDL_DestroySemaphore                  |   n   |        |\nSDL_LockMutex                         |   n   |        |\nSDL_SemPost                           |   n   |        |\nSDL_SemTryWait                        |   n   |        |\nSDL_SemValue                          |   n   |        |\nSDL_SemWait                           |   n   |        |\nSDL_SemWaitTimeout                    |   n   |        |\nSDL_TryLockMutex                      |   n   |        |\nSDL_UnlockMutex                       |   n   |        |\n\n#### Atomic Operations\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_AtomicAdd                         |   n   |        |\nSDL_AtomicCAS                         |   n   |        |\nSDL_AtomicCASPtr                      |   n   |        |\nSDL_AtomicDecRef                      |   n   |        |\nSDL_AtomicGet                         |   n   |        |\nSDL_AtomicGetPtr                      |   n   |        |\nSDL_AtomicIncRef                      |   n   |        |\nSDL_AtomicLock                        |   n   |        |\nSDL_AtomicSet                         |   n   |        |\nSDL_AtomicSetPtr                      |   n   |        |\nSDL_AtomicTryLock                     |   n   |        |\nSDL_AtomicUnlock                      |   n   |        |\nSDL_CompilerBarrier                   |   n   |        |\nSDL_MemoryBarrierReleaseFunction      |   n   | 2.0.6  |\n\n#### Timer Support\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_AddTimer                          |   n   |        |\nSDL_Delay                             |   y   |        |\nSDL_GetPerformanceCounter             |   y   |        |\nSDL_GetPerformanceFrequency           |   y   |        |\nSDL_GetTicks                          |   y   |        |\nSDL_GetTicks64                        |   y   | 2.0.18 |\nSDL_RemoveTimer                       |   n   |        |\nSDL_TICKS_PASSED                      |   n   |        |\n\n#### Filesystem Paths\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_GetBasePath                       |   y   |        |\nSDL_GetPrefPath                       |   y   |        |\n\n#### File I/O Abstraction\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_AllocRW                           |   n   |        |\nSDL_FreeRW                            |   n   |        |      * (implicitly called by RWclose)\nSDL_RWFromConstMem                    |   n   |        |\nSDL_RWFromFP                          |   n   |        |      * (unix only)\nSDL_RWFromFile                        |   y   |        |\nSDL_RWFromMem                         |   n   |        |\nSDL_RWclose                           |   y   |        |\nSDL_RWread                            |   y   |        |\nSDL_RWseek                            |   y   |        |\nSDL_RWsize                            |   y   |        |\nSDL_RWtell                            |   y   |        |\nSDL_RWwrite                           |   y   |        |\nSDL_ReadBE16                          |   y   |        |\nSDL_ReadBE32                          |   y   |        |\nSDL_ReadBE64                          |   y   |        |\nSDL_ReadLE16                          |   y   |        |\nSDL_ReadLE32                          |   y   |        |\nSDL_ReadLE64                          |   y   |        |\nSDL_ReadU8                            |   y   |        |\nSDL_WriteBE16                         |   n   |        |\nSDL_WriteBE32                         |   n   |        |\nSDL_WriteBE64                         |   n   |        |\nSDL_WriteLE16                         |   n   |        |\nSDL_WriteLE32                         |   n   |        |\nSDL_WriteLE64                         |   n   |        |\n\n#### Shared Object Loading and Function Lookup\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_LoadObject                        |   y   |        |\nSDL_LoadFunction                      |   y   |        |\nSDL_UnloadObject                      |   y   |        |\n\n#### Platform Detection\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_GetPlatform                       |   n   |        |      *\n\n#### CPU Feature Detection\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_GetCPUCacheLineSize               |   y   |        |\nSDL_GetCPUCount                       |   y   |        |\nSDL_GetSystemRAM                      |   n   |        |\nSDL_Has3DNow                          |   y   |        |\nSDL_HasARMSIMD                        |   n   | 2.0.12 |\nSDL_HasAVX                            |   y   |        |\nSDL_HasAVX512F                        |   n   | 2.0.12 |\nSDL_HasAVX2                           |   y   |        |\nSDL_HasAltiVec                        |   y   |        |\nSDL_HasLSX                            |   n   | 2.24.0 |\nSDL_HasLASX                           |   n   | 2.24.0 |\nSDL_HasMMX                            |   y   |        |\nSDL_HasNEON                           |   n   | 2.0.6  |\nSDL_HasRDTSC                          |   y   |        |\nSDL_HasSSE                            |   y   |        |\nSDL_HasSSE2                           |   y   |        |\nSDL_HasSSE3                           |   y   |        |\nSDL_HasSSE41                          |   y   |        |\nSDL_HasSSE42                          |   n   |        |\nSDL_SIMDAlloc                         |   n   | 2.0.10 |\nSDL_SIMDFree                          |   n   | 2.0.10 |\nSDL_SIMDGetAlignment                  |   n   | 2.0.10 |\nSDL_SIMDRealloc                       |   n   | 2.0.14 |\n\n#### Byte Order and Byte Swapping\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_Swap16                            |   n   |        |\nSDL_Swap32                            |   n   |        |\nSDL_Swap64                            |   n   |        |\nSDL_SwapBE16                          |   n   |        |\nSDL_SwapBE32                          |   n   |        |\nSDL_SwapBE64                          |   n   |        |\nSDL_SwapFloat                         |   n   |        |\nSDL_SwapFloatBE                       |   n   |        |\nSDL_SwapFloatLE                       |   n   |        |\nSDL_SwapLE16                          |   n   |        |\nSDL_SwapLE32                          |   n   |        |\nSDL_SwapLE64                          |   n   |        |\n\n#### Bit Manipulation\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_MostSignificantBitIndex32         |   n   |        |\nSDL_HasExactlyOneBitSet32             |   n   |        |\n\n#### Power Management Status\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_GetPowerInfo                      |   y   |        |\n\n#### Message boxes\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_ShowMessageBox                    |   n   |        |\nSDL_ShowSimpleMessageBox              |   n   |        |\n\n#### Platform-specific Functionality\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nSDL_AndroidBackButton                 |   n   |        |\nSDL_AndroidGetActivity                |   n   |        |\nSDL_AndroidGetExternalStoragePath     |   n   |        |\nSDL_AndroidGetExternalStorageState    |   n   |        |\nSDL_AndroidGetInternalStoragePath     |   n   |        |\nSDL_AndroidGetJNIEnv                  |   n   |        |\nSDL_AndroidRequestPermission          |   n   |        |\nSDL_AndroidSendMessage                |   n   |        |\nSDL_AndroidShowToast                  |   n   |        |\nSDL_Direct3D9GetAdapterIndex          |   n   |        |\nSDL_DXGIGetOutputInfo                 |   n   |        |\nSDL_GDKGetDefaultUser                 |   n   |        |\nSDL_GDKGetTaskQueue                   |   n   |        |\nSDL_GetAndroidSDKVersion              |   n   |        |\nSDL_iPhoneSetAnimationCallback        |   n   |        |\nSDL_iPhoneSetEventPump                |   n   |        |\nSDL_IsAndroidTV                       |   n   |        |\nSDL_IsChromebook                      |   n   |        |\nSDL_IsDeXMode                         |   n   |        |\nSDL_IsTablet                          |   n   |        |\nSDL_LinuxSetThreadPriority            |   n   |        |\nSDL_LinuxSetThreadPriorityAndPolicy   |   n   |        |\nSDL_RenderGetD3D11Device              |   n   |        |\nSDL_RenderGetD3D12Device              |   n   |        |\nSDL_RenderGetD3D9Device               |   n   |        |\nSDL_SetWindowsMessageHook             |   n   |        |\nSDL_WinRTGetDeviceFamily              |   n   |        |\nSDL_WinRTGetFSPathUNICODE             |   n   |        |\nSDL_WinRTGetFSPathUTF8                |   n   |        |\n\n#### Standard Library Functionality\n\nName                                  | Bound | Since  | Won't bind\n--------------------------------------|-------|--------|-----------\nalloca                                |   n   |        |\nSDL_acos                              |   n   |        |\nSDL_stack_alloc                       |   n   |        |\nSDL_stack_free                        |   n   |        |\nSDL_malloc                            |   n   |        |\nSDL_calloc                            |   n   |        |\nSDL_realloc                           |   n   |        |\nSDL_free                              |   n   |        |\nSDL_GetOriginalMemoryFunctions        |   n   |        |\nSDL_SetMemoryFunctions                |   n   |        |\nSDL_GetNumAllocations                 |   n   |        |\nSDL_getenv                            |   n   |        |\nSDL_setenv                            |   n   |        |\nSDL_CompareCallback                   |   n   |        |\nSDL_qsort                             |   n   |        |\nSDL_bsearch                           |   n   |        |\nSDL_abs                               |   n   |        |\nSDL_isalpha                           |   n   |        |\nSDL_isalnum                           |   n   |        |\nSDL_isblank                           |   n   |        |\nSDL_iscntrl                           |   n   |        |\nSDL_isdigit                           |   n   |        |\nSDL_isxdigit                          |   n   |        |\nSDL_ispunct                           |   n   |        |\nSDL_isspace                           |   n   |        |\nSDL_isupper                           |   n   |        |\nSDL_islower                           |   n   |        |\nSDL_isprint                           |   n   |        |\nSDL_isgraph                           |   n   |        |\nSDL_toupper                           |   n   |        |\nSDL_tolower                           |   n   |        |\nSDL_crc16                             |   n   |        |\nSDL_crc32                             |   n   |        |\nSDL_memset                            |   n   |        |\nSDL_copyp                             |   n   |        |\netc.\n\n### SDL_image\n\nName                                  | Bound | Since | Won't bind\n--------------------------------------|-------|-------|-----------\nIMG_Linked_Version                    |   y   |       |\nIMG_Init                              |   y   |       |\nIMG_Quit                              |   y   |       |\nIMG_Load                              |   y   |       |\nIMG_Load_RW                           |   n   |       |\nIMG_LoadTyped_RW                      |   y   |       |\nIMG_LoadTexture                       |   n   |       |\nIMG_LoadTexture_RW                    |   n   |       |\nIMG_LoadTextureTyped_RW               |   n   |       |\nIMG_LoadCUR_RW                        |   n   |       |\nIMG_LoadICO_RW                        |   n   |       |\nIMG_LoadBMP_RW                        |   n   |       |\nIMG_LoadPNM_RW                        |   n   |       |\nIMG_LoadXPM_RW                        |   n   |       |\nIMG_LoadXCF_RW                        |   n   |       |\nIMG_LoadPCX_RW                        |   n   |       |\nIMG_LoadGIF_RW                        |   n   |       |\nIMG_LoadJPG_RW                        |   n   |       |\nIMG_LoadTIF_RW                        |   n   |       |\nIMG_LoadPNG_RW                        |   n   |       |\nIMG_LoadTGA_RW                        |   n   |       |\nIMG_LoadLBM_RW                        |   n   |       |\nIMG_LoadXV_RW                         |   n   |       |\nIMG_ReadXPMFromArray                  |   n   |       |\nIMG_isCUR                             |   n   |       |\nIMG_isICO                             |   n   |       |\nIMG_isBMP                             |   n   |       |\nIMG_isPNM                             |   n   |       |\nIMG_isXPM                             |   n   |       |\nIMG_isXCF                             |   n   |       |\nIMG_isPCX                             |   n   |       |\nIMG_isGIF                             |   n   |       |\nIMG_isJPG                             |   n   |       |\nIMG_isTIF                             |   n   |       |\nIMG_isPNG                             |   n   |       |\nIMG_isLBM                             |   n   |       |\nIMG_isXV                              |   n   |       |\nIMG_SavePNG                           |   y   |       |\nIMG_SavePNG_RW                        |   n   |       |\nIMG_SetError                          |   n   |       |      *\nIMG_GetError                          |   n   |       |      *\n\n### SDL_ttf\n\nName                                  | Bound | Since | Won't bind\n--------------------------------------|-------|-------|-----------\nTTF_Init                              |   y   |       |\nTTF_WasInit                           |   n   |       |      *\nTTF_Quit                              |   y   |       |\nTTF_GetError                          |   n   |       |      *\nTTF_SetError                          |   n   |       |      *\nTTF_OpenFont                          |   n   |       |      *\nTTF_OpenFontRW                        |   n   |       |      *\nTTF_OpenFontIndex                     |   n   |       |      *\nTTF_OpenFontIndexRW                   |   y   |       |\nTTF_CloseFont                         |   y   |       |\nTTF_ByteSwappedUNICODE                |   n   |       |\nTTF_GetFontStyle                      |   y   |       |\nTTF_SetFontStyle                      |   y   |       |\nTTF_GetFontOutline                    |   y   |       |\nTTF_SetFontOutline                    |   y   |       |\nTTF_GetFontHinting                    |   y   |       |\nTTF_SetFontHinting                    |   y   |       |\nTTF_GetFontKerning                    |   y   |       |\nTTF_SetFontKerning                    |   y   |       |\nTTF_FontHeight                        |   y   |       |\nTTF_FontAscent                        |   y   |       |\nTTF_FontDescent                       |   y   |       |\nTTF_FontLineSkip                      |   y   |       |\nTTF_FontFaces                         |   y   |       |\nTTF_FontFaceIsFixedWidth              |   y   |       |\nTTF_FontFaceFamilyName                |   y   |       |\nTTF_FontFaceStyleName                 |   y   |       |\nTTF_GlyphIsProvided                   |   n   |       |\nTTF_GlyphMetrics                      |   n   |       |\nTTF_SizeText                          |   y   |       |\nTTF_SizeUTF8                          |   y   |       |\nTTF_SizeUNICODE                       |   n   |       |\nTTF_RenderText_Solid                  |   y   |       |\nTTF_RenderUTF8_Solid                  |   y   |       |\nTTF_RenderUNICODE_Solid               |   n   |       |\nTTF_RenderGlyph_Solid                 |   n   |       |\nTTF_RenderText_Shaded                 |   y   |       |\nTTF_RenderUTF8_Shaded                 |   y   |       |\nTTF_RenderUNICODE_Shaded              |   n   |       |\nTTF_RenderGlyph_Shaded                |   n   |       |\nTTF_RenderText_Blended                |   y   |       |\nTTF_RenderUTF8_Blended                |   y   |       |\nTTF_RenderUNICODE_Blended             |   n   |       |\nTTF_RenderGlyph_Blended               |   n   |       |\nTTF_Linked_Version                    |   y   |       |\nSDL_TTF_MAJOR_VERSION                 |   y   |       |\nSDL_TTF_MINOR_VERSION                 |   y   |       |\nSDL_TTF_PATCHLEVEL                    |   y   |       |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fada-game-framework%2Fsdlada","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fada-game-framework%2Fsdlada","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fada-game-framework%2Fsdlada/lists"}