Home

Awesome

SDLAda

This is a new variable thickness Ada 2012 binding to SDL 2.x.y (http://www.libsdl.org). This means that things are wrapped when they need to be into a thicker binding and those things that can just be imported, are.

There will still be a need to use conditional compilation for the various platforms as there will be some platform specifics which cannot be abstracted out cleanly, but this will be reduced as much as possible.

The bindings are only generated for the specific parts of SDL which Ada does not already have support for, i.e. threads are not bound as Ada has tasking support built in.

Usage, Licence & Attribution

SDLAda is distributed under the same zlib licence as the SDL library is. You may use this library in any way you like whether free or commercial. I would add that whilst you don't have to state that your game uses this library, it would be nice if you did, it's all good advertising for Ada :)

You do not need to complete any copyright assignment forms, the licence will not change from zlib as I want people to be able to use the library however they wish without restrictions.

Building

Makefile

This was originally built with the idea that there could be different compilers and their build scripts would go into a build/<compiler> directory. This can still be built with the makefile, the subsequent extracted components cannot.

There are a number of variables which can be set to control the compilation:

cd build/gnat
make SDL_PLATFORM=linux SDL_MODE=release

Alire

You can build the library with Alire now, by calling the following in the root directory:

alr build

This seems to have come up as an issue, people not checking the original makefile on lines 29 and 93 on how to link SDLAda. SDL2 comes with the sdl2-config command which includes the following options:

$ sdl2-config --help
Usage: /usr/bin/sdl2-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs]

$ sdl2-config --cflags
-I/usr/include/SDL2 -D_REENTRANT

$ sdl2-config --libs
-L/usr/lib64 -lSDL2

These options will differ depending on operating system. SDL3 seems like it might operate in a bit more of a portable way.

Linking

To link an application with sdlada, you will need to add -largs $(sdl2-config --libs) to command line:

$ cd <game|app dir>
$ alr build -- -largs $(sdl2-config --libs)

You'll also need to add -lSDL2_image, -lSDL2_ttf and -lSDL2_mixer for your platform. TODO: Fix this.

This will only be required for the time being.

MacOS

SDLAda's alire.toml is set up to use the Homebrew and MacPorts distributions, so you need to install the dependencies first.

Home Brew
brew install sdl2
brew install sdl2_ttf
brew install sdl2_image
brew install sdl2_mixer
Mac Ports
sudo port install libsdl2
sudo port install libsdl2_ttf
sudo port install libsdl2_image
sudo port install libsdl2_mixer

Installation

make SDL_PLATFORM=linux SDL_MODE=release DESTDIR=$HOME/opt/sdlada install

Examples

You can find more examples hosted on Rosetta Code.

Screenshots

stream2 ttf surface

Copyright notice

See LICENCE file.

Thanks to

To everyone who has provided patches, pull requests, typo fixes, etc.

WARNING!!!

I have tried to model the types correctly, but remember SDL is a C library and some things may not make sense. Please file a bug report if you use this library and find that a type does not cover enough values for cross-platform use.

TODO

Anything listed here is a question of whether it's required.

Current version

See alire.toml

Versions tested against

LibraryVersion
SDL2.28.5
SDL_image2.6.3
SDL_mixer2.6.3
SDL_ttf2.20.2

Status

SDL Core

Init / Shutdown

NameBoundSinceWon't bind
SDL_Inity
SDL_InitSubSystemy
SDL_Quity
SDL_QuitRequestedn
SDL_QuitSubSystemy
SDL_SetMainReadyn
SDL_WasInity
SDL_WinRTRunAppn

Configuration Variables

NameBoundSinceWon't bind
SDL_AddHintCallbackn
SDL_ClearHintsy
SDL_DelHintCallbackn
SDL_GetHinty
SDL_GetHintBooleann
SDL_ResetHintn2.24.0
SDL_ResetHintsn2.26.0
SDL_SetHinty
SDL_SetHintWithPriorityy

Error Handling

NameBoundSinceWon't bind
SDL_ClearErrory
SDL_GetErrory
SDL_GetErrorMsgy
SDL_SetErrory

Log Handling

NameBoundSinceWon't bind
SDL_Logy
SDL_LogCriticaly
SDL_LogDebugy
SDL_LogErrory
SDL_LogGetOutputFunctionn
SDL_LogGetPriorityn
SDL_LogInfoy
SDL_LogMessagey
SDL_LogMessageVn
SDL_LogResetPrioritiesy
SDL_LogSetAllPriorityy
SDL_LogSetOutputFunctionn
SDL_LogSetPriorityy
SDL_LogVerbosey
SDL_LogWarny

Assertions

NameBoundSinceWon't bind
SDL_assertn
SDL_assert_paranoidn
SDL_assert_releasen
SDL_GetAssertionHandlern
SDL_GetAssertionReportn
SDL_GetDefaultAssertionHandlern
SDL_ResetAssertionReportn
SDL_SetAssertionHandlern
SDL_TriggerBreakpointn

Querying SDL Version

NameBoundSinceWon't bind
SDL_COMPILEDVERSIONn*
SDL_GetRevisiony
SDL_GetRevisionNumbery
SDL_GetVersiony
SDL_REVISIONn*
SDL_VERSIONn*
SDL_VERSIONNUMn*
SDL_VERSION_ATLEASTn*

Display and Window Management

NameBoundSinceWon't bind
SDL_CreateWindowy
SDL_CreateWindowFromy
SDL_DestroyWindowy
SDL_DestroyWindowSurfacen2.28.0
SDL_DisableScreenSavery
SDL_EnableScreenSavery
SDL_FlashWindown2.0.16
SDL_GetClosestDisplayModey
SDL_GetCurrentDisplayModey
SDL_GetCurrentVideoDrivery
SDL_GetDesktopDisplayModey
SDL_GetDisplayBoundsy
SDL_GetDisplayDPIy2.0.4
SDL_GetDisplayModey
SDL_GetDisplayNamey
SDL_GetDisplayOrientationy2.0.9
SDL_GetDisplayUsableBoundsy2.0.5
SDL_GetGrabbedWindown2.0.4
SDL_GetNumDisplayModesy
SDL_GetNumVideoDisplaysy
SDL_GetNumVideoDriversy
SDL_GetPointDisplayIndexy2.24.0
SDL_GetRectDisplayIndexn2.24.0
SDL_GetVideoDrivery
SDL_GetWindowBordersSizen2.0.5
SDL_GetWindowBrightnessy
SDL_GetWindowDatay
SDL_GetWindowDisplayIndexy
SDL_GetWindowDisplayModey
SDL_GetWindowFlagsy
SDL_GetWindowFromIDy
SDL_GetWindowGammaRampy
SDL_GetWindowGraby
SDL_GetWindowICCProfilen2.0.18
SDL_GetWindowIDy
SDL_GetWindowKeyboardGrabn2.0.16
SDL_GetWindowMaximumSizey
SDL_GetWindowMinimumSizey
SDL_GetWindowMouseGrabn2.0.16
SDL_GetWindowMouseRectn2.0.18
SDL_GetWindowOpacityn2.0.5
SDL_GetWindowPixelFormaty
SDL_GetWindowPositiony
SDL_GetWindowSizey
SDL_GetWindowSizeInPixelsn2.26.0
SDL_GetWindowSurfacey
SDL_GetWindowTitley
SDL_GL_CreateContexty
SDL_GL_DeleteContexty
SDL_GL_ExtensionSupportedy
SDL_GL_GetAttributey
SDL_GL_GetCurrentContexty
SDL_GL_GetCurrentWindown
SDL_GL_GetDrawableSizey
SDL_GL_GetProcAddressy
SDL_GL_GetSwapIntervaly
SDL_GL_LoadLibraryy
SDL_GL_MakeCurrenty
SDL_GL_ResetAttributesy
SDL_GL_SetAttributey
SDL_GL_SetSwapIntervaly
SDL_GL_SwapWindowy
SDL_GL_UnloadLibraryy
SDL_HasWindowSurfacen2.28.0
SDL_HideWindowy
SDL_IsScreenSaverEnabledy
SDL_MaximizeWindowy
SDL_MinimizeWindowy
SDL_RaiseWindowy
SDL_RestoreWindowy
SDL_SetWindowAlwaysOnTopn2.0.16
SDL_SetWindowBorderedn
SDL_SetWindowBrightnessy
SDL_SetWindowDatay
SDL_SetWindowDisplayModey
SDL_SetWindowFullscreeny
SDL_SetWindowGammaRampy
SDL_SetWindowGraby
SDL_SetWindowHitTestn
SDL_SetWindowIcony
SDL_SetWindowInputFocusn2.0.5
SDL_SetWindowKeyboardGrabn2.0.16
SDL_SetWindowMaximumSizey
SDL_SetWindowMinimumSizey
SDL_SetWindowModalForn2.0.5
SDL_SetWindowMouseGrabn2.0.16
SDL_SetWindowMouseRectn2.0.18
SDL_SetWindowOpacityn2.0.5
SDL_SetWindowPositiony
SDL_SetWindowResizablen2.0.5
SDL_SetWindowSizey
SDL_SetWindowTitley
SDL_ShowWindowy
SDL_UpdateWindowSurfacen
SDL_UpdateWindowSurfaceRectsy
SDL_VideoInity
SDL_VideoQuity

2D Accelerated Rendering

NameBoundSinceWon't bind
SDL_CreateRenderery
SDL_CreateSoftwareRenderery
SDL_CreateTexturey
SDL_CreateTextureFromSurfacey
SDL_CreateWindowAndRenderern
SDL_DestroyRenderery
SDL_DestroyTexturey
SDL_GetNumRenderDriversy
SDL_GetRenderDrawBlendModey
SDL_GetRenderDrawColory
SDL_GetRenderDriverInfoy
SDL_GetRenderery
SDL_GetRendererInfoy
SDL_GetRendererOutputSizey
SDL_GetRenderTargetn
SDL_GetTextureAlphaMody
SDL_GetTextureBlendModey
SDL_GetTextureColorMody
SDL_GetTextureScaleModey2.0.12
SDL_GetTextureUserDatan2.0.18
SDL_GL_BindTexturey
SDL_GL_UnbindTexturey
SDL_LockTexturey
SDL_LockTextureToSurfacen2.0.12
SDL_QueryTexturey
SDL_RenderCleary
SDL_RenderCopyy
SDL_RenderCopyExy
SDL_RenderCopyExFy2.0.10
SDL_RenderCopyFy2.0.10
SDL_RenderDrawLiney
SDL_RenderDrawLineFy2.0.10
SDL_RenderDrawLinesy
SDL_RenderDrawLinesFy2.0.10
SDL_RenderDrawPointy
SDL_RenderDrawPointFy2.0.10
SDL_RenderDrawPointsy
SDL_RenderDrawPointsFy2.0.10
SDL_RenderDrawRecty
SDL_RenderDrawRectFy2.0.10
SDL_RenderDrawRectsy
SDL_RenderDrawRectsFy2.0.10
SDL_RenderFillRecty
SDL_RenderFillRectFy2.0.10
SDL_RenderFillRectsy
SDL_RenderFillRectsFy2.0.10
SDL_RenderFlushy2.0.10
SDL_RenderGeometryy2.0.18
SDL_RenderGeometryRAWn2.0.18
SDL_RenderGetClipRecty
SDL_RenderGetIntegerScaley2.0.5
SDL_RenderGetLogicalSizey
SDL_RenderGetMetalCommandEncodern2.0.8
SDL_RenderGetMetalLayern2.0.8
SDL_RenderGetScaley
SDL_RenderGetViewporty
SDL_RenderGetWindowy2.0.22
SDL_RenderIsClipEnabledn
SDL_RenderLogicalToWindowy2.0.18
SDL_RenderPresenty
SDL_RenderReadPixelsn
SDL_RenderSetClipRecty
SDL_RenderSetIntegerScaley2.0.5
SDL_RenderSetLogicalSizey
SDL_RenderSetScaley
SDL_RenderSetViewporty
SDL_RenderSetVSyncn2.0.18
SDL_RenderTargetSupportedy
SDL_RenderWindowToLogicaly2.0.18
SDL_SetRenderDrawBlendModey
SDL_SetRenderDrawColory
SDL_SetRenderTargety
SDL_SetTextureAlphaMody
SDL_SetTextureBlendModey
SDL_SetTextureColorMody
SDL_SetTextureScaleModey2.0.12
SDL_SetTextureUserDatan2.0.18
SDL_UnlockTexturey
SDL_UpdateNVTexturen2.0.16
SDL_UpdateTexturen2.0.0
SDL_UpdateYUVTexturen2.0.1

Pixel Formats and Conversion Routines

NameBoundSinceWon't bind
SDL_AllocFormaty
SDL_AllocPalettey
SDL_CalculateGammaRampy
SDL_FreeFormaty
SDL_FreePalettey
SDL_GetPixelFormatNamey
SDL_GetRGBy
SDL_GetRGBAy
SDL_MapRGBy
SDL_MapRGBAy
SDL_MasksToPixelFormatEnumy
SDL_PixelFormatEnumToMasksy
SDL_SetPaletteColorsn
SDL_SetPixelFormatPaletten

Rectangle Functions

NameBoundSinceWon't bind
SDL_EncloseFPointsy2.0.22
SDL_EnclosePointsy
SDL_FRectEmptyy?
SDL_FRectEqualsy2.0.22
SDL_FRectEqualsEpsilony2.0.22
SDL_HasIntersectiony
SDL_HasIntersectionFy2.0.22
SDL_IntersectFRecty2.0.22
SDL_IntersectFRectAndLiney2.0.22
SDL_IntersectRecty
SDL_IntersectRectAndLiney
SDL_PointInFRecty?
SDL_PointInRecty?
SDL_RectEmptyy?
SDL_RectEqualsn?*
SDL_UnionFRecty2.0.22
SDL_UnionRecty

Surface Creation and Simple Drawing

NameBoundSinceWon't bind
SDL_BlitScaledy
SDL_BlitSurfacey
SDL_ConvertPixelsn2.0.0
SDL_ConvertSurfacey2.0.0
SDL_ConvertSurfaceFormatn2.0.0
SDL_CreateRGBSurfacey2.0.0
SDL_CreateRGBSurfaceFromn2.0.0
SDL_CreateRGBSurfaceWithFormatn2.0.5
SDL_CreateRGBSurfaceWithFormatFromn2.0.5
SDL_FillRecty
SDL_FillRectsy
SDL_FreeSurfacey
SDL_GetClipRecty
SDL_GetColorKeyy
SDL_GetSurfaceAlphaMody
SDL_GetSurfaceBlendModey
SDL_GetSurfaceColorMody
SDL_GetYUVConversionModen2.0.8
SDL_GetYUVConversionModeForResolutionn2.0.8
SDL_HasColorKeyn2.0.9
SDL_HasSurfaceRLEn2.0.14
SDL_LoadBMPy
SDL_LoadBMP_RWy
SDL_LockSurfacey
SDL_LowerBlity
SDL_LowerBlitScaledy
SDL_MUSTLOCKyTODO: Function expression.
SDL_PremultiplyAlphan2.0.18
SDL_SaveBMPn
SDL_SaveBMP_RWn
SDL_SetClipRecty
SDL_SetColorKeyy
SDL_SetSurfaceAlphaMody
SDL_SetSurfaceBlendModey
SDL_SetSurfaceColorMody
SDL_SetSurfacePaletten
SDL_SetSurfaceRLEy
SDL_SetYUVConversionModen2.0.8
SDL_SoftStretchn2.0.0
SDL_SoftStretchLinearn2.0.16
SDL_UnlockSurfacey
SDL_UpperBlitn2.0.0
SDL_UpperBlitScaledn2.0.0

Platform-specific Window Management

NameBoundSinceWon't bind
SDL_GetWindowWMInfoy

Clipboard Handling

NameBoundSinceWon't bind
SDL_GetClipboardTexty
SDL_GetPrimarySelectionTextn2.26.0
SDL_HasClipboardTexty
SDL_HasPrimarySelectionTextn2.26.0
SDL_SetClipboardTexty
SDL_SetPrimarySelectionTextn2.26.0

Vulkan Support

NameBoundSinceWon't bind
SDL_Vulkan_CreateSurfacen2.0.6
SDL_Vulkan_GetDrawableSizen2.0.6
SDL_Vulkan_GetInstanceExtensionsn2.0.6
SDL_Vulkan_GetInstanceExtensionsn2.0.6
SDL_Vulkan_LoadLibraryn2.0.6
SDL_Vulkan_UnloadLibraryn2.0.6

Metal Support

NameBoundSinceWon't bind
SDL_Metal_CreateViewn2.0.12
SDL_Metal_DestroyViewn2.0.12
SDL_Metal_GetDrawableSizen2.0.14
SDL_Metal_GetLayern2.0.14

Event Handling

NameBoundSinceWon't bind
SDL_AddEventWatchn
SDL_DelEventWatchn
SDL_EventStaten
SDL_FilterEventsn
SDL_FlushEventn
SDL_FlushEventsn
SDL_GetEventFiltern
SDL_HasEventn
SDL_HasEventsn
SDL_PeepEventsn
SDL_PollEventy
SDL_PumpEventsn
SDL_PushEventn
SDL_RegisterEventsn
SDL_SetEventFiltern
SDL_WaitEventn
SDL_WaitEventTimeoutn

Keyboard Support

NameBoundSinceWon't bind
SDL_ClearCompositiony2.0.22
SDL_GetKeyboardFocusy
SDL_GetKeyboardStatey
SDL_GetKeyFromNamey
SDL_GetKeyFromScancodey
SDL_GetKeyNamey
SDL_GetModStatey
SDL_GetScancodeFromKeyy
SDL_GetScancodeFromNamey
SDL_GetScancodeNamey
SDL_HasScreenKeyboardSupporty
SDL_IsScreenKeyboardShowny
SDL_IsTextInputActivey
SDL_IsTextInputShowny2.0.22
SDL_ResetKeyboardy2.24.0
SDL_SetModStatey
SDL_SetTextInputRecty
SDL_StartTextInputy
SDL_StopTextInputy

Mouse Support

NameBoundSinceWon't bind
SDL_CaptureMousey
SDL_CreateColorCursorn
SDL_CreateCursorn
SDL_CreateSystemCursory
SDL_FreeCursory
SDL_GetCursory
SDL_GetDefaultCursorn
SDL_GetGlobalMouseStatey
SDL_GetMouseFocusn
SDL_GetMouseStatey
SDL_GetRelativeMouseModey
SDL_GetRelativeMouseStatey
SDL_SetCursory
SDL_SetRelativeMouseModey
SDL_ShowCursorn
SDL_WarpMouseGlobaly
SDL_WarpMouseInWindowy

Joystick Support

NameBoundSinceWon't bind
SDL_GetJoystickGUIDInfon2.26.0
SDL_JoystickAttachVirtualn2.0.14
SDL_JoystickAttachVirtualExn2.24.0
SDL_JoystickClosey
SDL_JoystickCurrentPowerLeveln2.0.4
SDL_JoystickDetachVirtualn2.0.14
SDL_JoystickEventStatey
SDL_JoystickFromInstanceIDn
SDL_JoystickFromPlayerIndexn2.0.12
SDL_JoystickGetAttachedy
SDL_JoystickGetAxisy
SDL_JoystickGetAxisInitialStaten2.0.6
SDL_JoystickGetBally
SDL_JoystickGetButtony
SDL_JoystickGetDeviceGUIDy
SDL_JoystickGetDeviceInstanceIDn2.0.6
SDL_JoystickGetDevicePlayerIndexn2.0.9
SDL_JoystickGetDeviceProductn2.0.6
SDL_JoystickGetDeviceProductVersionn2.0.6
SDL_JoystickGetDeviceTypen2.0.6
SDL_JoystickGetDeviceVendorn2.0.6
SDL_JoystickGetFirmwareVersionn2.24.0
SDL_JoystickGetGUIDy
SDL_JoystickGetGUIDFromStringy
SDL_JoystickGetGUIDStringy
SDL_JoystickGetHaty
SDL_JoystickGetPlayerIndexn2.0.9
SDL_JoystickGetProductn2.0.6
SDL_JoystickGetProductVersionn2.0.6
SDL_JoystickGetSerialn2.0.14
SDL_JoystickGetTypen2.0.6
SDL_JoystickGetVendorn2.0.6
SDL_JoystickHasLEDn2.0.14
SDL_JoystickHasRumblen2.0.18
SDL_JoystickHasRumbleTriggersn2.0.18
SDL_JoystickInstanceIDy
SDL_JoystickIsVirtualn2.0.14
SDL_JoystickNamey
SDL_JoystickNameForIndexy
SDL_JoystickNumAxesy
SDL_JoystickNumBallsy
SDL_JoystickNumButtonsy
SDL_JoystickNumHatsy
SDL_JoystickOpeny
SDL_JoystickPathn2.24.0
SDL_JoystickPathForIndexn2.24.0
SDL_JoystickRumblen2.0.9
SDL_JoystickRumbleTriggersn2.0.14
SDL_JoystickSendEffectn2.0.16
SDL_JoystickSetLEDn2.0.14
SDL_JoystickSetPlayerIndexn2.0.12
SDL_JoystickSetVirtualAxisn2.0.14
SDL_JoystickSetVirtualButtonn2.0.14
SDL_JoystickSetVirtualHatn2.0.14
SDL_JoystickUpdatey
SDL_LockJoysticksy2.0.7
SDL_NumJoysticksy
SDL_UnlockJoysticksy2.0.7

Game Controller Support

NameBoundSinceWon't bind
SDL_GameControllerAddMappingy
SDL_GameControllerAddMappingsFromFiley
SDL_GameControllerAddMappingsFromRWn
SDL_GameControllerClosey
SDL_GameControllerEventStatey
SDL_GameControllerFromInstanceIDn2.0.4
SDL_GameControllerFromPlayerIndexn2.0.12
SDL_GameControllerGetAppleSFSymbolsNameForAxisn2.0.18
SDL_GameControllerGetAppleSFSymbolsNameForButtonn2.0.18
SDL_GameControllerGetAttachedy
SDL_GameControllerGetAxisy
SDL_GameControllerGetAxisFromStringy
SDL_GameControllerGetBindForAxisy
SDL_GameControllerGetBindForButtony
SDL_GameControllerGetButtony
SDL_GameControllerGetButtonFromStringy
SDL_GameControllerGetFirmwareVersionn2.24.0
SDL_GameControllerGetJoysticky
SDL_GameControllerGetNumTouchpadFingersn2.0.14
SDL_GameControllerGetNumTouchpadsn2.0.14
SDL_GameControllerGetPlayerIndexn2.0.9
SDL_GameControllerGetProductn2.0.6
SDL_GameControllerGetProductVersionn2.0.6
SDL_GameControllerGetSensorDatan2.0.14
SDL_GameControllerGetSensorDataRaten2.0.16
SDL_GameControllerGetSensorDataWithTimestampn2.26.0
SDL_GameControllerGetSerialn2.0.14
SDL_GameControllerGetSteamHandlen2.30.0
SDL_GameControllerGetStringForAxisy
SDL_GameControllerGetStringForButtony
SDL_GameControllerGetTouchpadFingern2.0.14
SDL_GameControllerGetTypen2.0.12
SDL_GameControllerGetVendorn2.0.6
SDL_GameControllerHasAxisn2.0.14
SDL_GameControllerHasButtonn2.0.14
SDL_GameControllerHasLEDn2.0.14
SDL_GameControllerHasRumblen2.0.18
SDL_GameControllerHasRumbleTriggersn2.0.18
SDL_GameControllerHasSensorn2.0.14
SDL_GameControllerIsSensorEnabledn2.0.14
SDL_GameControllerMappingy
SDL_GameControllerMappingForDeviceIndexn2.0.9
SDL_GameControllerMappingForGUIDy
SDL_GameControllerMappingForIndexn2.0.6
SDL_GameControllerNamey
SDL_GameControllerNameForIndexy
SDL_GameControllerNumMappingsn2.0.6
SDL_GameControllerOpeny
SDL_GameControllerPathn2.24.0
SDL_GameControllerPathForIndexn2.24.0
SDL_GameControllerRumblen2.0.9
SDL_GameControllerRumbleTriggersn2.0.14
SDL_GameControllerSendEffectn2.0.16
SDL_GameControllerSetLEDn2.0.14
SDL_GameControllerSetPlayerIndexn2.0.12
SDL_GameControllerSetSensorEnabledn2.0.14
SDL_GameControllerTypeForIndexn2.0.12
SDL_GameControllerUpdatey
SDL_IsGameControllery

Touch & Gesture

NameBoundSinceWon't bind
SDL_GetNumTouchDevicesn
SDL_GetNumTouchFingersn
SDL_GetTouchDevicen
SDL_GetTouchFingern
SDL_LoadDollarTemplatesn
SDL_RecordGesturen
SDL_SaveAllDollarTemplatesn
SDL_SaveDollarTemplaten

Sensors

NameBoundSinceWon't bind
SDL_LockSensorsn2.0.14
SDL_NumSensorsn2.0.9
SDL_SensorClosen2.0.9
SDL_SensorFromInstanceIDn2.0.9
SDL_SensorGetDatan2.0.9
SDL_SensorGetDataWithTimestampn2.26.0
SDL_SensorGetDeviceInstanceIDn2.0.9
SDL_SensorGetDeviceNamen2.0.9
SDL_SensorGetDeviceNonPortableTypen2.0.9
SDL_SensorGetDeviceTypen2.0.9
SDL_SensorGetInstanceIDn2.0.9
SDL_SensorGetNamen2.0.9
SDL_SensorGetNonPortableTypen2.0.9
SDL_SensorGetTypen2.0.9
SDL_SensorOpenn2.0.9
SDL_SensorUpdaten2.0.9

Force Feedback Support

NameBoundSinceWon't bind
SDL_HapticClosen
SDL_HapticDestroyEffectn
SDL_HapticEffectSupportedn
SDL_HapticGetEffectStatusn
SDL_HapticIndexn
SDL_HapticNamen
SDL_HapticNewEffectn
SDL_HapticNumAxesn
SDL_HapticNumEffectsn
SDL_HapticNumEffectsPlayingn
SDL_HapticOpenn2.0.0
SDL_HapticOpenedn2.0.0
SDL_HapticOpenFromJoystickn
SDL_HapticOpenFromMousen
SDL_HapticPausen
SDL_HapticQueryn
SDL_HapticRumbleInitn
SDL_HapticRumblePlayn
SDL_HapticRumbleStopn
SDL_HapticRumbleSupportedn
SDL_HapticRunEffectn
SDL_HapticSetAutocentern
SDL_HapticSetGainn
SDL_HapticStopAlln
SDL_HapticStopEffectn
SDL_HapticUnpausen
SDL_HapticUpdateEffectn
SDL_JoystickIsHapticy
SDL_MouseIsHapticn
SDL_NumHapticsn

Audio Device Management, Playing and Recording

NameBoundSinceWon't bind
SDL_AudioInity
SDL_AudioQuity
SDL_AudioStreamAvailablen2.0.7
SDL_AudioStreamClearn2.0.7
SDL_AudioStreamFlushn2.0.7
SDL_AudioStreamGetn2.0.7
SDL_AudioStreamPutn2.0.7
SDL_BuildAudioCVTn
SDL_ClearQueuedAudioy
SDL_CloseAudion
SDL_CloseAudioDevicey
SDL_ConvertAudion
SDL_DequeueAudion
SDL_FreeAudioStreamn2.0.7
SDL_FreeWAVn
SDL_GetAudioDeviceNamey
SDL_GetAudioDeviceSpecn2.0.16
SDL_GetAudioDeviceStatusy
SDL_GetAudioDrivery
SDL_GetAudioStatusn
SDL_GetCurrentAudioDrivery
SDL_GetDefaultAudioInfon2.24.0
SDL_GetNumAudioDevicesy
SDL_GetNumAudioDriversy
SDL_GetQueuedAudioSizey
SDL_LoadWAVn
SDL_LoadWAV_RWn
SDL_LockAudion
SDL_LockAudioDevicen
SDL_MixAudion
SDL_MixAudioFormatn
SDL_NewAudioStreamn2.0.7
SDL_OpenAudion
SDL_OpenAudioDevicey
SDL_PauseAudion
SDL_PauseAudioDevicey
SDL_QueueAudion
SDL_UnlockAudion
SDL_UnlockAudioDevicen

Thread Management

NameBoundSinceWon't bind
SDL_CreateThreadn
SDL_CreateThreadWithStackSizen2.0.9
SDL_DetachThreadn
SDL_GetThreadIDn
SDL_GetThreadNamen
SDL_SetThreadPriorityn
SDL_ThreadIDn
SDL_TLSCleanupn2.0.16
SDL_TLSCreaten
SDL_TLSGetn
SDL_TLSSetn
SDL_WaitThreadn

Thread Synchronization Primitives

NameBoundSinceWon't bind
SDL_CondBroadcastn
SDL_CondSignaln
SDL_CondWaitn
SDL_CondWaitTimeoutn
SDL_CreateCondn
SDL_CreateMutexn
SDL_CreateSemaphoren
SDL_DestroyCondn
SDL_DestroyMutexn
SDL_DestroySemaphoren
SDL_LockMutexn
SDL_SemPostn
SDL_SemTryWaitn
SDL_SemValuen
SDL_SemWaitn
SDL_SemWaitTimeoutn
SDL_TryLockMutexn
SDL_UnlockMutexn

Atomic Operations

NameBoundSinceWon't bind
SDL_AtomicAddn
SDL_AtomicCASn
SDL_AtomicCASPtrn
SDL_AtomicDecRefn
SDL_AtomicGetn
SDL_AtomicGetPtrn
SDL_AtomicIncRefn
SDL_AtomicLockn
SDL_AtomicSetn
SDL_AtomicSetPtrn
SDL_AtomicTryLockn
SDL_AtomicUnlockn
SDL_CompilerBarriern
SDL_MemoryBarrierReleaseFunctionn2.0.6

Timer Support

NameBoundSinceWon't bind
SDL_AddTimern
SDL_Delayy
SDL_GetPerformanceCountery
SDL_GetPerformanceFrequencyy
SDL_GetTicksy
SDL_GetTicks64y2.0.18
SDL_RemoveTimern
SDL_TICKS_PASSEDn

Filesystem Paths

NameBoundSinceWon't bind
SDL_GetBasePathy
SDL_GetPrefPathy

File I/O Abstraction

NameBoundSinceWon't bind
SDL_AllocRWn
SDL_FreeRWn* (implicitly called by RWclose)
SDL_RWFromConstMemn
SDL_RWFromFPn* (unix only)
SDL_RWFromFiley
SDL_RWFromMemn
SDL_RWclosey
SDL_RWready
SDL_RWseeky
SDL_RWsizey
SDL_RWtelly
SDL_RWwritey
SDL_ReadBE16y
SDL_ReadBE32y
SDL_ReadBE64y
SDL_ReadLE16y
SDL_ReadLE32y
SDL_ReadLE64y
SDL_ReadU8y
SDL_WriteBE16n
SDL_WriteBE32n
SDL_WriteBE64n
SDL_WriteLE16n
SDL_WriteLE32n
SDL_WriteLE64n

Shared Object Loading and Function Lookup

NameBoundSinceWon't bind
SDL_LoadObjecty
SDL_LoadFunctiony
SDL_UnloadObjecty

Platform Detection

NameBoundSinceWon't bind
SDL_GetPlatformn*

CPU Feature Detection

NameBoundSinceWon't bind
SDL_GetCPUCacheLineSizey
SDL_GetCPUCounty
SDL_GetSystemRAMn
SDL_Has3DNowy
SDL_HasARMSIMDn2.0.12
SDL_HasAVXy
SDL_HasAVX512Fn2.0.12
SDL_HasAVX2y
SDL_HasAltiVecy
SDL_HasLSXn2.24.0
SDL_HasLASXn2.24.0
SDL_HasMMXy
SDL_HasNEONn2.0.6
SDL_HasRDTSCy
SDL_HasSSEy
SDL_HasSSE2y
SDL_HasSSE3y
SDL_HasSSE41y
SDL_HasSSE42n
SDL_SIMDAllocn2.0.10
SDL_SIMDFreen2.0.10
SDL_SIMDGetAlignmentn2.0.10
SDL_SIMDReallocn2.0.14

Byte Order and Byte Swapping

NameBoundSinceWon't bind
SDL_Swap16n
SDL_Swap32n
SDL_Swap64n
SDL_SwapBE16n
SDL_SwapBE32n
SDL_SwapBE64n
SDL_SwapFloatn
SDL_SwapFloatBEn
SDL_SwapFloatLEn
SDL_SwapLE16n
SDL_SwapLE32n
SDL_SwapLE64n

Bit Manipulation

NameBoundSinceWon't bind
SDL_MostSignificantBitIndex32n
SDL_HasExactlyOneBitSet32n

Power Management Status

NameBoundSinceWon't bind
SDL_GetPowerInfoy

Message boxes

NameBoundSinceWon't bind
SDL_ShowMessageBoxn
SDL_ShowSimpleMessageBoxn

Platform-specific Functionality

NameBoundSinceWon't bind
SDL_AndroidBackButtonn
SDL_AndroidGetActivityn
SDL_AndroidGetExternalStoragePathn
SDL_AndroidGetExternalStorageStaten
SDL_AndroidGetInternalStoragePathn
SDL_AndroidGetJNIEnvn
SDL_AndroidRequestPermissionn
SDL_AndroidSendMessagen
SDL_AndroidShowToastn
SDL_Direct3D9GetAdapterIndexn
SDL_DXGIGetOutputInfon
SDL_GDKGetDefaultUsern
SDL_GDKGetTaskQueuen
SDL_GetAndroidSDKVersionn
SDL_iPhoneSetAnimationCallbackn
SDL_iPhoneSetEventPumpn
SDL_IsAndroidTVn
SDL_IsChromebookn
SDL_IsDeXModen
SDL_IsTabletn
SDL_LinuxSetThreadPriorityn
SDL_LinuxSetThreadPriorityAndPolicyn
SDL_RenderGetD3D11Devicen
SDL_RenderGetD3D12Devicen
SDL_RenderGetD3D9Devicen
SDL_SetWindowsMessageHookn
SDL_WinRTGetDeviceFamilyn
SDL_WinRTGetFSPathUNICODEn
SDL_WinRTGetFSPathUTF8n

Standard Library Functionality

NameBoundSinceWon't bind
allocan
SDL_acosn
SDL_stack_allocn
SDL_stack_freen
SDL_mallocn
SDL_callocn
SDL_reallocn
SDL_freen
SDL_GetOriginalMemoryFunctionsn
SDL_SetMemoryFunctionsn
SDL_GetNumAllocationsn
SDL_getenvn
SDL_setenvn
SDL_CompareCallbackn
SDL_qsortn
SDL_bsearchn
SDL_absn
SDL_isalphan
SDL_isalnumn
SDL_isblankn
SDL_iscntrln
SDL_isdigitn
SDL_isxdigitn
SDL_ispunctn
SDL_isspacen
SDL_isuppern
SDL_islowern
SDL_isprintn
SDL_isgraphn
SDL_touppern
SDL_tolowern
SDL_crc16n
SDL_crc32n
SDL_memsetn
SDL_copypn
etc.

SDL_image

NameBoundSinceWon't bind
IMG_Linked_Versiony
IMG_Inity
IMG_Quity
IMG_Loady
IMG_Load_RWn
IMG_LoadTyped_RWy
IMG_LoadTexturen
IMG_LoadTexture_RWn
IMG_LoadTextureTyped_RWn
IMG_LoadCUR_RWn
IMG_LoadICO_RWn
IMG_LoadBMP_RWn
IMG_LoadPNM_RWn
IMG_LoadXPM_RWn
IMG_LoadXCF_RWn
IMG_LoadPCX_RWn
IMG_LoadGIF_RWn
IMG_LoadJPG_RWn
IMG_LoadTIF_RWn
IMG_LoadPNG_RWn
IMG_LoadTGA_RWn
IMG_LoadLBM_RWn
IMG_LoadXV_RWn
IMG_ReadXPMFromArrayn
IMG_isCURn
IMG_isICOn
IMG_isBMPn
IMG_isPNMn
IMG_isXPMn
IMG_isXCFn
IMG_isPCXn
IMG_isGIFn
IMG_isJPGn
IMG_isTIFn
IMG_isPNGn
IMG_isLBMn
IMG_isXVn
IMG_SavePNGy
IMG_SavePNG_RWn
IMG_SetErrorn*
IMG_GetErrorn*

SDL_ttf

NameBoundSinceWon't bind
TTF_Inity
TTF_WasInitn*
TTF_Quity
TTF_GetErrorn*
TTF_SetErrorn*
TTF_OpenFontn*
TTF_OpenFontRWn*
TTF_OpenFontIndexn*
TTF_OpenFontIndexRWy
TTF_CloseFonty
TTF_ByteSwappedUNICODEn
TTF_GetFontStyley
TTF_SetFontStyley
TTF_GetFontOutliney
TTF_SetFontOutliney
TTF_GetFontHintingy
TTF_SetFontHintingy
TTF_GetFontKerningy
TTF_SetFontKerningy
TTF_FontHeighty
TTF_FontAscenty
TTF_FontDescenty
TTF_FontLineSkipy
TTF_FontFacesy
TTF_FontFaceIsFixedWidthy
TTF_FontFaceFamilyNamey
TTF_FontFaceStyleNamey
TTF_GlyphIsProvidedn
TTF_GlyphMetricsn
TTF_SizeTexty
TTF_SizeUTF8y
TTF_SizeUNICODEn
TTF_RenderText_Solidy
TTF_RenderUTF8_Solidy
TTF_RenderUNICODE_Solidn
TTF_RenderGlyph_Solidn
TTF_RenderText_Shadedy
TTF_RenderUTF8_Shadedy
TTF_RenderUNICODE_Shadedn
TTF_RenderGlyph_Shadedn
TTF_RenderText_Blendedy
TTF_RenderUTF8_Blendedy
TTF_RenderUNICODE_Blendedn
TTF_RenderGlyph_Blendedn
TTF_Linked_Versiony
SDL_TTF_MAJOR_VERSIONy
SDL_TTF_MINOR_VERSIONy
SDL_TTF_PATCHLEVELy