Merge commit '3a7f96fd99528968c39b5be81db067ca018d432b' into dev
This commit is contained in:
316
external/SDL/docs/README-migration.md
vendored
316
external/SDL/docs/README-migration.md
vendored
@@ -6,7 +6,7 @@ Details on API changes are organized by SDL 2.0 header below.
|
||||
|
||||
The file with your main() function should include <SDL3/SDL_main.h>, as that is no longer included in SDL.h.
|
||||
|
||||
Functions that previously returned a negative error code now return SDL_bool.
|
||||
Functions that previously returned a negative error code now return bool.
|
||||
|
||||
Code that used to look like this:
|
||||
```c
|
||||
@@ -86,11 +86,14 @@ The following structures have been renamed:
|
||||
- SDL_atomic_t => SDL_AtomicInt
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_AtomicCAS() => SDL_AtomicCompareAndSwap()
|
||||
* SDL_AtomicCASPtr() => SDL_AtomicCompareAndSwapPointer()
|
||||
* SDL_AtomicGetPtr() => SDL_AtomicGetPointer()
|
||||
* SDL_AtomicAdd() => SDL_AddAtomicInt()
|
||||
* SDL_AtomicCAS() => SDL_CompareAndSwapAtomicInt()
|
||||
* SDL_AtomicCASPtr() => SDL_CompareAndSwapAtomicPointer()
|
||||
* SDL_AtomicGet() => SDL_GetAtomicInt()
|
||||
* SDL_AtomicGetPtr() => SDL_GetAtomicPointer()
|
||||
* SDL_AtomicLock() => SDL_LockSpinlock()
|
||||
* SDL_AtomicSetPtr() => SDL_AtomicSetPointer()
|
||||
* SDL_AtomicSet() => SDL_SetAtomicInt()
|
||||
* SDL_AtomicSetPtr() => SDL_SetAtomicPointer()
|
||||
* SDL_AtomicTryLock() => SDL_TryLockSpinlock()
|
||||
* SDL_AtomicUnlock() => SDL_UnlockSpinlock()
|
||||
|
||||
@@ -223,7 +226,7 @@ SDL_FreeWAV has been removed and calls can be replaced with SDL_free.
|
||||
|
||||
SDL_LoadWAV() is a proper function now and no longer a macro (but offers the same functionality otherwise).
|
||||
|
||||
SDL_LoadWAV_IO() and SDL_LoadWAV() return an SDL_bool now, like most of SDL. They no longer return a pointer to an SDL_AudioSpec.
|
||||
SDL_LoadWAV_IO() and SDL_LoadWAV() return an bool now, like most of SDL. They no longer return a pointer to an SDL_AudioSpec.
|
||||
|
||||
SDL_AudioCVT interface has been removed, the SDL_AudioStream interface (for audio supplied in pieces) or the new SDL_ConvertAudioSamples() function (for converting a complete audio buffer in one call) can be used instead.
|
||||
|
||||
@@ -280,13 +283,13 @@ In SDL2, SDL_AUDIODEVICEREMOVED events would fire for open devices with the `whi
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_AudioStreamAvailable() => SDL_GetAudioStreamAvailable()
|
||||
* SDL_AudioStreamClear() => SDL_ClearAudioStream(), returns SDL_bool
|
||||
* SDL_AudioStreamFlush() => SDL_FlushAudioStream(), returns SDL_bool
|
||||
* SDL_AudioStreamClear() => SDL_ClearAudioStream(), returns bool
|
||||
* SDL_AudioStreamFlush() => SDL_FlushAudioStream(), returns bool
|
||||
* SDL_AudioStreamGet() => SDL_GetAudioStreamData()
|
||||
* SDL_AudioStreamPut() => SDL_PutAudioStreamData(), returns SDL_bool
|
||||
* SDL_AudioStreamPut() => SDL_PutAudioStreamData(), returns bool
|
||||
* SDL_FreeAudioStream() => SDL_DestroyAudioStream()
|
||||
* SDL_LoadWAV_RW() => SDL_LoadWAV_IO(), returns SDL_bool
|
||||
* SDL_MixAudioFormat() => SDL_MixAudio(), returns SDL_bool
|
||||
* SDL_LoadWAV_RW() => SDL_LoadWAV_IO(), returns bool
|
||||
* SDL_MixAudioFormat() => SDL_MixAudio(), returns bool
|
||||
* SDL_NewAudioStream() => SDL_CreateAudioStream()
|
||||
|
||||
|
||||
@@ -341,6 +344,7 @@ SDL_HasRDTSC() has been removed; there is no replacement. Don't use the RDTSC op
|
||||
SDL_SIMDAlloc(), SDL_SIMDRealloc(), and SDL_SIMDFree() have been removed. You can use SDL_aligned_alloc() and SDL_aligned_free() with SDL_GetSIMDAlignment() to get the same functionality.
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_GetCPUCount() => SDL_GetNumLogicalCPUCores()
|
||||
* SDL_SIMDGetAlignment() => SDL_GetSIMDAlignment()
|
||||
|
||||
## SDL_endian.h
|
||||
@@ -360,6 +364,8 @@ The following functions have been removed:
|
||||
|
||||
## SDL_events.h
|
||||
|
||||
SDL_PRESSED and SDL_RELEASED have been removed. For the most part you can replace uses of these with true and false respectively. Events which had a field `state` to represent these values have had those fields changed to bool `down`, e.g. `event.key.state` is now `event.key.down`.
|
||||
|
||||
The timestamp member of the SDL_Event structure now represents nanoseconds, and is populated with SDL_GetTicksNS()
|
||||
|
||||
The timestamp_us member of the sensor events has been renamed sensor_timestamp and now represents nanoseconds. This value is filled in from the hardware, if available, and may not be synchronized with values returned from SDL_GetTicksNS().
|
||||
@@ -411,7 +417,7 @@ SDL_AddEventWatch() now returns SDL_FALSE_ if it fails because it ran out of mem
|
||||
|
||||
SDL_RegisterEvents() now returns 0 if it couldn't allocate any user events.
|
||||
|
||||
SDL_EventFilter functions now return SDL_bool.
|
||||
SDL_EventFilter functions now return bool.
|
||||
|
||||
The following symbols have been renamed:
|
||||
* SDL_APP_DIDENTERBACKGROUND => SDL_EVENT_DID_ENTER_BACKGROUND
|
||||
@@ -505,15 +511,15 @@ The gamepad face buttons have been renamed from A/B/X/Y to North/South/East/West
|
||||
#define CONFIRM_BUTTON SDL_GAMEPAD_BUTTON_SOUTH
|
||||
#define CANCEL_BUTTON SDL_GAMEPAD_BUTTON_EAST
|
||||
|
||||
SDL_bool flipped_buttons;
|
||||
bool flipped_buttons;
|
||||
|
||||
void InitMappedButtons(SDL_Gamepad *gamepad)
|
||||
{
|
||||
if (!GetFlippedButtonSetting(&flipped_buttons)) {
|
||||
if (SDL_GetGamepadButtonLabel(gamepad, SDL_GAMEPAD_BUTTON_SOUTH) == SDL_GAMEPAD_BUTTON_LABEL_B) {
|
||||
flipped_buttons = SDL_TRUE;
|
||||
flipped_buttons = true;
|
||||
} else {
|
||||
flipped_buttons = SDL_FALSE;
|
||||
flipped_buttons = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -571,7 +577,7 @@ SDL_CONTROLLER_TYPE_VIRTUAL has been removed, so virtual controllers can emulate
|
||||
|
||||
SDL_CONTROLLER_TYPE_AMAZON_LUNA has been removed, and can be replaced with this code:
|
||||
```c
|
||||
SDL_bool SDL_IsJoystickAmazonLunaController(Uint16 vendor_id, Uint16 product_id)
|
||||
bool SDL_IsJoystickAmazonLunaController(Uint16 vendor_id, Uint16 product_id)
|
||||
{
|
||||
return ((vendor_id == 0x1949 && product_id == 0x0419) ||
|
||||
(vendor_id == 0x0171 && product_id == 0x0419));
|
||||
@@ -580,7 +586,7 @@ SDL_bool SDL_IsJoystickAmazonLunaController(Uint16 vendor_id, Uint16 product_id)
|
||||
|
||||
SDL_CONTROLLER_TYPE_GOOGLE_STADIA has been removed, and can be replaced with this code:
|
||||
```c
|
||||
SDL_bool SDL_IsJoystickGoogleStadiaController(Uint16 vendor_id, Uint16 product_id)
|
||||
bool SDL_IsJoystickGoogleStadiaController(Uint16 vendor_id, Uint16 product_id)
|
||||
{
|
||||
return (vendor_id == 0x18d1 && product_id == 0x9400);
|
||||
}
|
||||
@@ -588,7 +594,7 @@ SDL_bool SDL_IsJoystickGoogleStadiaController(Uint16 vendor_id, Uint16 product_i
|
||||
|
||||
SDL_CONTROLLER_TYPE_NVIDIA_SHIELD has been removed, and can be replaced with this code:
|
||||
```c
|
||||
SDL_bool SDL_IsJoystickNVIDIASHIELDController(Uint16 vendor_id, Uint16 product_id)
|
||||
bool SDL_IsJoystickNVIDIASHIELDController(Uint16 vendor_id, Uint16 product_id)
|
||||
{
|
||||
return (vendor_id == 0x0955 && (product_id == 0x7210 || product_id == 0x7214));
|
||||
}
|
||||
@@ -596,6 +602,8 @@ SDL_bool SDL_IsJoystickNVIDIASHIELDController(Uint16 vendor_id, Uint16 product_i
|
||||
|
||||
The inputType and outputType fields of SDL_GamepadBinding have been renamed input_type and output_type.
|
||||
|
||||
SDL_GetGamepadTouchpadFinger() takes a pointer to bool for the finger state instead of a pointer to Uint8.
|
||||
|
||||
The following enums have been renamed:
|
||||
* SDL_GameControllerAxis => SDL_GamepadAxis
|
||||
* SDL_GameControllerBindType => SDL_GamepadBindingType
|
||||
@@ -626,13 +634,13 @@ The following functions have been renamed:
|
||||
* SDL_GameControllerGetPlayerIndex() => SDL_GetGamepadPlayerIndex()
|
||||
* SDL_GameControllerGetProduct() => SDL_GetGamepadProduct()
|
||||
* SDL_GameControllerGetProductVersion() => SDL_GetGamepadProductVersion()
|
||||
* SDL_GameControllerGetSensorData() => SDL_GetGamepadSensorData(), returns SDL_bool
|
||||
* SDL_GameControllerGetSensorData() => SDL_GetGamepadSensorData(), returns bool
|
||||
* SDL_GameControllerGetSensorDataRate() => SDL_GetGamepadSensorDataRate()
|
||||
* SDL_GameControllerGetSerial() => SDL_GetGamepadSerial()
|
||||
* SDL_GameControllerGetSteamHandle() => SDL_GetGamepadSteamHandle()
|
||||
* SDL_GameControllerGetStringForAxis() => SDL_GetGamepadStringForAxis()
|
||||
* SDL_GameControllerGetStringForButton() => SDL_GetGamepadStringForButton()
|
||||
* SDL_GameControllerGetTouchpadFinger() => SDL_GetGamepadTouchpadFinger(), returns SDL_bool
|
||||
* SDL_GameControllerGetTouchpadFinger() => SDL_GetGamepadTouchpadFinger(), returns bool
|
||||
* SDL_GameControllerGetType() => SDL_GetGamepadType()
|
||||
* SDL_GameControllerGetVendor() => SDL_GetGamepadVendor()
|
||||
* SDL_GameControllerHasAxis() => SDL_GamepadHasAxis()
|
||||
@@ -644,12 +652,12 @@ The following functions have been renamed:
|
||||
* SDL_GameControllerName() => SDL_GetGamepadName()
|
||||
* SDL_GameControllerOpen() => SDL_OpenGamepad()
|
||||
* SDL_GameControllerPath() => SDL_GetGamepadPath()
|
||||
* SDL_GameControllerRumble() => SDL_RumbleGamepad(), returns SDL_bool
|
||||
* SDL_GameControllerRumbleTriggers() => SDL_RumbleGamepadTriggers(), returns SDL_bool
|
||||
* SDL_GameControllerSendEffect() => SDL_SendGamepadEffect(), returns SDL_bool
|
||||
* SDL_GameControllerSetLED() => SDL_SetGamepadLED(), returns SDL_bool
|
||||
* SDL_GameControllerSetPlayerIndex() => SDL_SetGamepadPlayerIndex(), returns SDL_bool
|
||||
* SDL_GameControllerSetSensorEnabled() => SDL_SetGamepadSensorEnabled(), returns SDL_bool
|
||||
* SDL_GameControllerRumble() => SDL_RumbleGamepad(), returns bool
|
||||
* SDL_GameControllerRumbleTriggers() => SDL_RumbleGamepadTriggers(), returns bool
|
||||
* SDL_GameControllerSendEffect() => SDL_SendGamepadEffect(), returns bool
|
||||
* SDL_GameControllerSetLED() => SDL_SetGamepadLED(), returns bool
|
||||
* SDL_GameControllerSetPlayerIndex() => SDL_SetGamepadPlayerIndex(), returns bool
|
||||
* SDL_GameControllerSetSensorEnabled() => SDL_SetGamepadSensorEnabled(), returns bool
|
||||
* SDL_GameControllerUpdate() => SDL_UpdateGamepads()
|
||||
* SDL_IsGameController() => SDL_IsGamepad()
|
||||
|
||||
@@ -671,7 +679,7 @@ The following symbols have been renamed:
|
||||
* SDL_CONTROLLER_AXIS_INVALID => SDL_GAMEPAD_AXIS_INVALID
|
||||
* SDL_CONTROLLER_AXIS_LEFTX => SDL_GAMEPAD_AXIS_LEFTX
|
||||
* SDL_CONTROLLER_AXIS_LEFTY => SDL_GAMEPAD_AXIS_LEFTY
|
||||
* SDL_CONTROLLER_AXIS_MAX => SDL_GAMEPAD_AXIS_MAX
|
||||
* SDL_CONTROLLER_AXIS_MAX => SDL_GAMEPAD_AXIS_COUNT
|
||||
* SDL_CONTROLLER_AXIS_RIGHTX => SDL_GAMEPAD_AXIS_RIGHTX
|
||||
* SDL_CONTROLLER_AXIS_RIGHTY => SDL_GAMEPAD_AXIS_RIGHTY
|
||||
* SDL_CONTROLLER_AXIS_TRIGGERLEFT => SDL_GAMEPAD_AXIS_LEFT_TRIGGER
|
||||
@@ -691,7 +699,7 @@ The following symbols have been renamed:
|
||||
* SDL_CONTROLLER_BUTTON_INVALID => SDL_GAMEPAD_BUTTON_INVALID
|
||||
* SDL_CONTROLLER_BUTTON_LEFTSHOULDER => SDL_GAMEPAD_BUTTON_LEFT_SHOULDER
|
||||
* SDL_CONTROLLER_BUTTON_LEFTSTICK => SDL_GAMEPAD_BUTTON_LEFT_STICK
|
||||
* SDL_CONTROLLER_BUTTON_MAX => SDL_GAMEPAD_BUTTON_MAX
|
||||
* SDL_CONTROLLER_BUTTON_MAX => SDL_GAMEPAD_BUTTON_COUNT
|
||||
* SDL_CONTROLLER_BUTTON_MISC1 => SDL_GAMEPAD_BUTTON_MISC1
|
||||
* SDL_CONTROLLER_BUTTON_PADDLE1 => SDL_GAMEPAD_BUTTON_RIGHT_PADDLE1
|
||||
* SDL_CONTROLLER_BUTTON_PADDLE2 => SDL_GAMEPAD_BUTTON_LEFT_PADDLE1
|
||||
@@ -752,12 +760,12 @@ Rather than iterating over haptic devices using device index, there is a new fun
|
||||
}
|
||||
```
|
||||
|
||||
SDL_GetHapticEffectStatus() now returns SDL_bool instead of an int result. You should call SDL_GetHapticFeatures() to make sure effect status is supported before calling this function.
|
||||
SDL_GetHapticEffectStatus() now returns bool instead of an int result. You should call SDL_GetHapticFeatures() to make sure effect status is supported before calling this function.
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_HapticClose() => SDL_CloseHaptic()
|
||||
* SDL_HapticDestroyEffect() => SDL_DestroyHapticEffect()
|
||||
* SDL_HapticGetEffectStatus() => SDL_GetHapticEffectStatus(), returns SDL_bool
|
||||
* SDL_HapticGetEffectStatus() => SDL_GetHapticEffectStatus(), returns bool
|
||||
* SDL_HapticNewEffect() => SDL_CreateHapticEffect()
|
||||
* SDL_HapticNumAxes() => SDL_GetNumHapticAxes()
|
||||
* SDL_HapticNumEffects() => SDL_GetMaxHapticEffects()
|
||||
@@ -765,18 +773,18 @@ The following functions have been renamed:
|
||||
* SDL_HapticOpen() => SDL_OpenHaptic()
|
||||
* SDL_HapticOpenFromJoystick() => SDL_OpenHapticFromJoystick()
|
||||
* SDL_HapticOpenFromMouse() => SDL_OpenHapticFromMouse()
|
||||
* SDL_HapticPause() => SDL_PauseHaptic(), returns SDL_bool
|
||||
* SDL_HapticPause() => SDL_PauseHaptic(), returns bool
|
||||
* SDL_HapticQuery() => SDL_GetHapticFeatures()
|
||||
* SDL_HapticRumbleInit() => SDL_InitHapticRumble(), returns SDL_bool
|
||||
* SDL_HapticRumblePlay() => SDL_PlayHapticRumble(), returns SDL_bool
|
||||
* SDL_HapticRumbleStop() => SDL_StopHapticRumble(), returns SDL_bool
|
||||
* SDL_HapticRunEffect() => SDL_RunHapticEffect(), returns SDL_bool
|
||||
* SDL_HapticSetAutocenter() => SDL_SetHapticAutocenter(), returns SDL_bool
|
||||
* SDL_HapticSetGain() => SDL_SetHapticGain(), returns SDL_bool
|
||||
* SDL_HapticStopAll() => SDL_StopHapticEffects(), returns SDL_bool
|
||||
* SDL_HapticStopEffect() => SDL_StopHapticEffect(), returns SDL_bool
|
||||
* SDL_HapticUnpause() => SDL_ResumeHaptic(), returns SDL_bool
|
||||
* SDL_HapticUpdateEffect() => SDL_UpdateHapticEffect(), returns SDL_bool
|
||||
* SDL_HapticRumbleInit() => SDL_InitHapticRumble(), returns bool
|
||||
* SDL_HapticRumblePlay() => SDL_PlayHapticRumble(), returns bool
|
||||
* SDL_HapticRumbleStop() => SDL_StopHapticRumble(), returns bool
|
||||
* SDL_HapticRunEffect() => SDL_RunHapticEffect(), returns bool
|
||||
* SDL_HapticSetAutocenter() => SDL_SetHapticAutocenter(), returns bool
|
||||
* SDL_HapticSetGain() => SDL_SetHapticGain(), returns bool
|
||||
* SDL_HapticStopAll() => SDL_StopHapticEffects(), returns bool
|
||||
* SDL_HapticStopEffect() => SDL_StopHapticEffect(), returns bool
|
||||
* SDL_HapticUnpause() => SDL_ResumeHaptic(), returns bool
|
||||
* SDL_HapticUpdateEffect() => SDL_UpdateHapticEffect(), returns bool
|
||||
* SDL_JoystickIsHaptic() => SDL_IsJoystickHaptic()
|
||||
* SDL_MouseIsHaptic() => SDL_IsMouseHaptic()
|
||||
|
||||
@@ -835,7 +843,10 @@ The following hints have been removed:
|
||||
* SDL_HINT_VIDEO_X11_XVIDMODE - Xvidmode no longer supported by the X11 backend
|
||||
* SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING - SDL now properly handles the 0x406D1388 Exception if no debugger intercepts it, preventing its propagation.
|
||||
* SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS - Slim Reader/Writer Locks are always used if available
|
||||
* SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 - replaced with SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4, defaulting to SDL_TRUE
|
||||
* SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 - replaced with SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4, defaulting to true
|
||||
* SDL_HINT_WINRT_HANDLE_BACK_BUTTON - WinRT support was removed in SDL3.
|
||||
* SDL_HINT_WINRT_PRIVACY_POLICY_LABEL - WinRT support was removed in SDL3.
|
||||
* SDL_HINT_WINRT_PRIVACY_POLICY_URL - WinRT support was removed in SDL3.
|
||||
* SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING
|
||||
* SDL_HINT_AUDIO_DEVICE_APP_NAME - replaced by either using the appname param to SDL_SetAppMetadata() or setting SDL_PROP_APP_METADATA_NAME_STRING with SDL_SetAppMetadataProperty()
|
||||
|
||||
@@ -887,6 +898,7 @@ The following symbols have been renamed:
|
||||
The following symbols have been removed:
|
||||
* SDL_INIT_NOPARACHUTE
|
||||
* SDL_INIT_EVERYTHING - you should only initialize the subsystems you are using
|
||||
* SDL_INIT_TIMER - no longer needed before calling SDL_AddTimer()
|
||||
|
||||
## SDL_joystick.h
|
||||
|
||||
@@ -920,18 +932,18 @@ The functions SDL_GetJoysticks(), SDL_GetJoystickNameForID(), SDL_GetJoystickPat
|
||||
|
||||
SDL_AttachVirtualJoystick() now returns the joystick instance ID instead of a device index, and returns 0 if there was an error.
|
||||
|
||||
SDL_VirtualJoystickDesc no longer takes a struct version; if we need to extend this in the future, we'll make a second struct and a second SDL_AttachVirtualJoystickEx-style function that uses it. Just zero the struct and don't set a version.
|
||||
SDL_VirtualJoystickDesc version should not be set to SDL_VIRTUAL_JOYSTICK_DESC_VERSION, instead the structure should be initialized using SDL_INIT_INTERFACE().
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_JoystickAttachVirtualEx() => SDL_AttachVirtualJoystick()
|
||||
* SDL_JoystickClose() => SDL_CloseJoystick()
|
||||
* SDL_JoystickDetachVirtual() => SDL_DetachVirtualJoystick(), returns SDL_bool
|
||||
* SDL_JoystickDetachVirtual() => SDL_DetachVirtualJoystick(), returns bool
|
||||
* SDL_JoystickFromInstanceID() => SDL_GetJoystickFromID()
|
||||
* SDL_JoystickFromPlayerIndex() => SDL_GetJoystickFromPlayerIndex()
|
||||
* SDL_JoystickGetAttached() => SDL_JoystickConnected()
|
||||
* SDL_JoystickGetAxis() => SDL_GetJoystickAxis()
|
||||
* SDL_JoystickGetAxisInitialState() => SDL_GetJoystickAxisInitialState()
|
||||
* SDL_JoystickGetBall() => SDL_GetJoystickBall(), returns SDL_bool
|
||||
* SDL_JoystickGetBall() => SDL_GetJoystickBall(), returns bool
|
||||
* SDL_JoystickGetButton() => SDL_GetJoystickButton()
|
||||
* SDL_JoystickGetFirmwareVersion() => SDL_GetJoystickFirmwareVersion()
|
||||
* SDL_JoystickGetGUID() => SDL_GetJoystickGUID()
|
||||
@@ -952,14 +964,14 @@ The following functions have been renamed:
|
||||
* SDL_JoystickNumHats() => SDL_GetNumJoystickHats()
|
||||
* SDL_JoystickOpen() => SDL_OpenJoystick()
|
||||
* SDL_JoystickPath() => SDL_GetJoystickPath()
|
||||
* SDL_JoystickRumble() => SDL_RumbleJoystick(), returns SDL_bool
|
||||
* SDL_JoystickRumbleTriggers() => SDL_RumbleJoystickTriggers(), returns SDL_bool
|
||||
* SDL_JoystickSendEffect() => SDL_SendJoystickEffect(), returns SDL_bool
|
||||
* SDL_JoystickSetLED() => SDL_SetJoystickLED(), returns SDL_bool
|
||||
* SDL_JoystickSetPlayerIndex() => SDL_SetJoystickPlayerIndex(), returns SDL_bool
|
||||
* SDL_JoystickSetVirtualAxis() => SDL_SetJoystickVirtualAxis(), returns SDL_bool
|
||||
* SDL_JoystickSetVirtualButton() => SDL_SetJoystickVirtualButton(), returns SDL_bool
|
||||
* SDL_JoystickSetVirtualHat() => SDL_SetJoystickVirtualHat(), returns SDL_bool
|
||||
* SDL_JoystickRumble() => SDL_RumbleJoystick(), returns bool
|
||||
* SDL_JoystickRumbleTriggers() => SDL_RumbleJoystickTriggers(), returns bool
|
||||
* SDL_JoystickSendEffect() => SDL_SendJoystickEffect(), returns bool
|
||||
* SDL_JoystickSetLED() => SDL_SetJoystickLED(), returns bool
|
||||
* SDL_JoystickSetPlayerIndex() => SDL_SetJoystickPlayerIndex(), returns bool
|
||||
* SDL_JoystickSetVirtualAxis() => SDL_SetJoystickVirtualAxis(), returns bool
|
||||
* SDL_JoystickSetVirtualButton() => SDL_SetJoystickVirtualButton(), returns bool
|
||||
* SDL_JoystickSetVirtualHat() => SDL_SetJoystickVirtualHat(), returns bool
|
||||
* SDL_JoystickUpdate() => SDL_UpdateJoysticks()
|
||||
|
||||
The following symbols have been renamed:
|
||||
@@ -983,7 +995,7 @@ The following functions have been removed:
|
||||
* SDL_JoystickNameForIndex() - replaced with SDL_GetJoystickNameForID()
|
||||
* SDL_JoystickPathForIndex() - replaced with SDL_GetJoystickPathForID()
|
||||
* SDL_NumJoysticks() - replaced with SDL_GetJoysticks()
|
||||
* SDL_VIRTUAL_JOYSTICK_DESC_VERSION - no longer needed, version info has been removed from SDL_VirtualJoystickDesc.
|
||||
* SDL_VIRTUAL_JOYSTICK_DESC_VERSION - no longer needed
|
||||
|
||||
The following symbols have been removed:
|
||||
* SDL_JOYBALLMOTION
|
||||
@@ -999,6 +1011,8 @@ The text input state hase been changed to be window-specific. SDL_StartTextInput
|
||||
|
||||
SDL_GetDefaultKeyFromScancode(), SDL_GetKeyFromScancode(), and SDL_GetScancodeFromKey() take an SDL_Keymod parameter and use that to provide the correct result based on keyboard modifier state.
|
||||
|
||||
SDL_GetKeyboardState() returns a pointer to bool instead of Uint8.
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_IsScreenKeyboardShown() => SDL_ScreenKeyboardShown()
|
||||
* SDL_IsTextInputActive() => SDL_TextInputActive()
|
||||
@@ -1107,6 +1121,9 @@ The following functions have been renamed:
|
||||
* SDL_LogSetOutputFunction() => SDL_SetLogOutputFunction()
|
||||
* SDL_LogSetPriority() => SDL_SetLogPriority()
|
||||
|
||||
The following symbols have been renamed:
|
||||
* SDL_NUM_LOG_PRIORITIES => SDL_LOG_PRIORITY_COUNT
|
||||
|
||||
## SDL_main.h
|
||||
|
||||
SDL3 doesn't have a static libSDLmain to link against anymore.
|
||||
@@ -1118,15 +1135,21 @@ Using it is really simple: Just `#include <SDL3/SDL_main.h>` in the source file
|
||||
Several platform-specific entry point functions have been removed as unnecessary. If for some reason you explicitly need them, here are easy replacements:
|
||||
|
||||
```c
|
||||
#define SDL_WinRTRunApp(MAIN_FUNC, RESERVED) SDL_RunApp(0, NULL, MAIN_FUNC, RESERVED)
|
||||
#define SDL_UIKitRunApp(ARGC, ARGV, MAIN_FUNC) SDL_RunApp(ARGC, ARGV, MAIN_FUNC, NULL)
|
||||
#define SDL_GDKRunApp(MAIN_FUNC, RESERVED) SDL_RunApp(0, NULL, MAIN_FUNC, RESERVED)
|
||||
```
|
||||
|
||||
The following functions have been removed:
|
||||
* SDL_WinRTRunApp() - WinRT support was removed in SDL3.
|
||||
|
||||
|
||||
## SDL_messagebox.h
|
||||
|
||||
The buttonid field of SDL_MessageBoxButtonData has been renamed buttonID.
|
||||
|
||||
The following symbols have been renamed:
|
||||
* SDL_MESSAGEBOX_COLOR_MAX => SDL_MESSAGEBOX_COLOR_COUNT
|
||||
|
||||
## SDL_metal.h
|
||||
|
||||
SDL_Metal_GetDrawableSize() has been removed. SDL_GetWindowSizeInPixels() can be used in its place.
|
||||
@@ -1147,6 +1170,7 @@ The following functions have been removed:
|
||||
* SDL_GetRelativeMouseMode() - replaced with SDL_GetWindowRelativeMouseMode()
|
||||
|
||||
The following symbols have been renamed:
|
||||
* SDL_NUM_SYSTEM_CURSORS => SDL_SYSTEM_CURSOR_COUNT
|
||||
* SDL_SYSTEM_CURSOR_ARROW => SDL_SYSTEM_CURSOR_DEFAULT
|
||||
* SDL_SYSTEM_CURSOR_HAND => SDL_SYSTEM_CURSOR_POINTER
|
||||
* SDL_SYSTEM_CURSOR_IBEAM => SDL_SYSTEM_CURSOR_TEXT
|
||||
@@ -1162,24 +1186,24 @@ The following symbols have been renamed:
|
||||
|
||||
SDL_MUTEX_MAXWAIT has been removed; it suggested there was a maximum timeout one could outlive, instead of an infinite wait. Instead, pass a -1 to functions that accepted this symbol.
|
||||
|
||||
SDL_MUTEX_TIMEDOUT has been removed, the wait functions return SDL_TRUE if the operation succeeded or SDL_FALSE if they timed out.
|
||||
SDL_MUTEX_TIMEDOUT has been removed, the wait functions return true if the operation succeeded or false if they timed out.
|
||||
|
||||
SDL_LockMutex(), SDL_UnlockMutex(), SDL_WaitSemaphore(), SDL_SignalSemaphore(), SDL_WaitCondition(), SDL_SignalCondition(), and SDL_BroadcastCondition() now return void; if the object is valid (including being a NULL pointer, which returns immediately), these functions never fail. If the object is invalid or the caller does something illegal, like unlock another thread's mutex, this is considered undefined behavior.
|
||||
|
||||
SDL_TryWaitSemaphore(), SDL_WaitSemaphoreTimeout(), and SDL_WaitConditionTimeout() now return SDL_TRUE if the operation succeeded or SDL_FALSE if they timed out.
|
||||
SDL_TryWaitSemaphore(), SDL_WaitSemaphoreTimeout(), and SDL_WaitConditionTimeout() now return true if the operation succeeded or false if they timed out.
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_CondBroadcast() => SDL_BroadcastCondition()
|
||||
* SDL_CondSignal() => SDL_SignalCondition()
|
||||
* SDL_CondWait() => SDL_WaitCondition()
|
||||
* SDL_CondWaitTimeout() => SDL_WaitConditionTimeout(), returns SDL_bool
|
||||
* SDL_CondWaitTimeout() => SDL_WaitConditionTimeout(), returns bool
|
||||
* SDL_CreateCond() => SDL_CreateCondition()
|
||||
* SDL_DestroyCond() => SDL_DestroyCondition()
|
||||
* SDL_SemPost() => SDL_SignalSemaphore()
|
||||
* SDL_SemTryWait() => SDL_TryWaitSemaphore(), returns SDL_bool
|
||||
* SDL_SemTryWait() => SDL_TryWaitSemaphore(), returns bool
|
||||
* SDL_SemValue() => SDL_GetSemaphoreValue()
|
||||
* SDL_SemWait() => SDL_WaitSemaphore()
|
||||
* SDL_SemWaitTimeout() => SDL_WaitSemaphoreTimeout(), returns SDL_bool
|
||||
* SDL_SemWaitTimeout() => SDL_WaitSemaphoreTimeout(), returns bool
|
||||
|
||||
The following symbols have been renamed:
|
||||
* SDL_cond => SDL_Condition
|
||||
@@ -1219,7 +1243,7 @@ The following functions have been renamed:
|
||||
* SDL_AllocPalette() => SDL_CreatePalette()
|
||||
* SDL_FreePalette() => SDL_DestroyPalette()
|
||||
* SDL_MasksToPixelFormatEnum() => SDL_GetPixelFormatForMasks()
|
||||
* SDL_PixelFormatEnumToMasks() => SDL_GetMasksForPixelFormat(), returns SDL_bool
|
||||
* SDL_PixelFormatEnumToMasks() => SDL_GetMasksForPixelFormat(), returns bool
|
||||
|
||||
The following symbols have been renamed:
|
||||
* SDL_PIXELFORMAT_BGR444 => SDL_PIXELFORMAT_XBGR4444
|
||||
@@ -1275,7 +1299,6 @@ The following platform preprocessor macros have been renamed:
|
||||
| `__VITA__` | `SDL_PLATFORM_VITA` |
|
||||
| `__WIN32__` | `SDL_PLATFORM_WIN32` |
|
||||
| `__WINGDK__` | `SDL_PLATFORM_WINGDK` |
|
||||
| `__WINRT__` | `SDL_PLATFORM_WINRT` |
|
||||
| `__XBOXONE__` | `SDL_PLATFORM_XBOXONE` |
|
||||
| `__XBOXSERIES__` | `SDL_PLATFORM_XBOXSERIES` |
|
||||
|
||||
@@ -1288,6 +1311,8 @@ The following platform preprocessor macros have been removed:
|
||||
* `__NACL__`
|
||||
* `__PNACL__`
|
||||
* `__WINDOWS__`
|
||||
* `__WINRT__`
|
||||
|
||||
|
||||
## SDL_quit.h
|
||||
|
||||
@@ -1318,8 +1343,8 @@ The following functions have been renamed:
|
||||
* SDL_IntersectRectAndLine() => SDL_GetRectAndLineIntersection()
|
||||
* SDL_PointInFRect() => SDL_PointInRectFloat()
|
||||
* SDL_RectEquals() => SDL_RectsEqual()
|
||||
* SDL_UnionFRect() => SDL_GetRectUnionFloat(), returns SDL_bool
|
||||
* SDL_UnionRect() => SDL_GetRectUnion(), returns SDL_bool
|
||||
* SDL_UnionFRect() => SDL_GetRectUnionFloat(), returns bool
|
||||
* SDL_UnionRect() => SDL_GetRectUnion(), returns bool
|
||||
|
||||
## SDL_render.h
|
||||
|
||||
@@ -1365,42 +1390,42 @@ SDL_Vertex has been changed to use floating point colors, in the range of [0..1]
|
||||
SDL_RenderReadPixels() returns a surface instead of filling in preallocated memory.
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_GetRendererOutputSize() => SDL_GetCurrentRenderOutputSize(), returns SDL_bool
|
||||
* SDL_RenderCopy() => SDL_RenderTexture(), returns SDL_bool
|
||||
* SDL_RenderCopyEx() => SDL_RenderTextureRotated(), returns SDL_bool
|
||||
* SDL_RenderCopyExF() => SDL_RenderTextureRotated(), returns SDL_bool
|
||||
* SDL_RenderCopyF() => SDL_RenderTexture(), returns SDL_bool
|
||||
* SDL_RenderDrawLine() => SDL_RenderLine(), returns SDL_bool
|
||||
* SDL_RenderDrawLineF() => SDL_RenderLine(), returns SDL_bool
|
||||
* SDL_RenderDrawLines() => SDL_RenderLines(), returns SDL_bool
|
||||
* SDL_RenderDrawLinesF() => SDL_RenderLines(), returns SDL_bool
|
||||
* SDL_RenderDrawPoint() => SDL_RenderPoint(), returns SDL_bool
|
||||
* SDL_RenderDrawPointF() => SDL_RenderPoint(), returns SDL_bool
|
||||
* SDL_RenderDrawPoints() => SDL_RenderPoints(), returns SDL_bool
|
||||
* SDL_RenderDrawPointsF() => SDL_RenderPoints(), returns SDL_bool
|
||||
* SDL_RenderDrawRect() => SDL_RenderRect(), returns SDL_bool
|
||||
* SDL_RenderDrawRectF() => SDL_RenderRect(), returns SDL_bool
|
||||
* SDL_RenderDrawRects() => SDL_RenderRects(), returns SDL_bool
|
||||
* SDL_RenderDrawRectsF() => SDL_RenderRects(), returns SDL_bool
|
||||
* SDL_RenderFillRectF() => SDL_RenderFillRect(), returns SDL_bool
|
||||
* SDL_RenderFillRectsF() => SDL_RenderFillRects(), returns SDL_bool
|
||||
* SDL_RenderFlush() => SDL_FlushRenderer(), returns SDL_bool
|
||||
* SDL_RenderGetClipRect() => SDL_GetRenderClipRect(), returns SDL_bool
|
||||
* SDL_GetRendererOutputSize() => SDL_GetCurrentRenderOutputSize(), returns bool
|
||||
* SDL_RenderCopy() => SDL_RenderTexture(), returns bool
|
||||
* SDL_RenderCopyEx() => SDL_RenderTextureRotated(), returns bool
|
||||
* SDL_RenderCopyExF() => SDL_RenderTextureRotated(), returns bool
|
||||
* SDL_RenderCopyF() => SDL_RenderTexture(), returns bool
|
||||
* SDL_RenderDrawLine() => SDL_RenderLine(), returns bool
|
||||
* SDL_RenderDrawLineF() => SDL_RenderLine(), returns bool
|
||||
* SDL_RenderDrawLines() => SDL_RenderLines(), returns bool
|
||||
* SDL_RenderDrawLinesF() => SDL_RenderLines(), returns bool
|
||||
* SDL_RenderDrawPoint() => SDL_RenderPoint(), returns bool
|
||||
* SDL_RenderDrawPointF() => SDL_RenderPoint(), returns bool
|
||||
* SDL_RenderDrawPoints() => SDL_RenderPoints(), returns bool
|
||||
* SDL_RenderDrawPointsF() => SDL_RenderPoints(), returns bool
|
||||
* SDL_RenderDrawRect() => SDL_RenderRect(), returns bool
|
||||
* SDL_RenderDrawRectF() => SDL_RenderRect(), returns bool
|
||||
* SDL_RenderDrawRects() => SDL_RenderRects(), returns bool
|
||||
* SDL_RenderDrawRectsF() => SDL_RenderRects(), returns bool
|
||||
* SDL_RenderFillRectF() => SDL_RenderFillRect(), returns bool
|
||||
* SDL_RenderFillRectsF() => SDL_RenderFillRects(), returns bool
|
||||
* SDL_RenderFlush() => SDL_FlushRenderer(), returns bool
|
||||
* SDL_RenderGetClipRect() => SDL_GetRenderClipRect(), returns bool
|
||||
* SDL_RenderGetIntegerScale() => SDL_GetRenderIntegerScale()
|
||||
* SDL_RenderGetLogicalSize() => SDL_GetRenderLogicalPresentation(), returns SDL_bool
|
||||
* SDL_RenderGetLogicalSize() => SDL_GetRenderLogicalPresentation(), returns bool
|
||||
* SDL_RenderGetMetalCommandEncoder() => SDL_GetRenderMetalCommandEncoder()
|
||||
* SDL_RenderGetMetalLayer() => SDL_GetRenderMetalLayer()
|
||||
* SDL_RenderGetScale() => SDL_GetRenderScale(), returns SDL_bool
|
||||
* SDL_RenderGetViewport() => SDL_GetRenderViewport(), returns SDL_bool
|
||||
* SDL_RenderGetScale() => SDL_GetRenderScale(), returns bool
|
||||
* SDL_RenderGetViewport() => SDL_GetRenderViewport(), returns bool
|
||||
* SDL_RenderGetWindow() => SDL_GetRenderWindow()
|
||||
* SDL_RenderIsClipEnabled() => SDL_RenderClipEnabled()
|
||||
* SDL_RenderLogicalToWindow() => SDL_RenderCoordinatesToWindow(), returns SDL_bool
|
||||
* SDL_RenderSetClipRect() => SDL_SetRenderClipRect(), returns SDL_bool
|
||||
* SDL_RenderSetLogicalSize() => SDL_SetRenderLogicalPresentation(), returns SDL_bool
|
||||
* SDL_RenderSetScale() => SDL_SetRenderScale(), returns SDL_bool
|
||||
* SDL_RenderSetVSync() => SDL_SetRenderVSync(), returns SDL_bool
|
||||
* SDL_RenderSetViewport() => SDL_SetRenderViewport(), returns SDL_bool
|
||||
* SDL_RenderWindowToLogical() => SDL_RenderCoordinatesFromWindow(), returns SDL_bool
|
||||
* SDL_RenderLogicalToWindow() => SDL_RenderCoordinatesToWindow(), returns bool
|
||||
* SDL_RenderSetClipRect() => SDL_SetRenderClipRect(), returns bool
|
||||
* SDL_RenderSetLogicalSize() => SDL_SetRenderLogicalPresentation(), returns bool
|
||||
* SDL_RenderSetScale() => SDL_SetRenderScale(), returns bool
|
||||
* SDL_RenderSetVSync() => SDL_SetRenderVSync(), returns bool
|
||||
* SDL_RenderSetViewport() => SDL_SetRenderViewport(), returns bool
|
||||
* SDL_RenderWindowToLogical() => SDL_RenderCoordinatesFromWindow(), returns bool
|
||||
|
||||
The following functions have been removed:
|
||||
* SDL_GL_BindTexture() - use SDL_GetTextureProperties() to get the OpenGL texture ID and bind the texture directly
|
||||
@@ -1489,7 +1514,7 @@ You can implement this in your own code easily:
|
||||
typedef struct IOStreamStdioFPData
|
||||
{
|
||||
FILE *fp;
|
||||
SDL_bool autoclose;
|
||||
bool autoclose;
|
||||
} IOStreamStdioFPData;
|
||||
|
||||
static Sint64 SDLCALL stdio_seek(void *userdata, Sint64 offset, int whence)
|
||||
@@ -1544,20 +1569,20 @@ static size_t SDLCALL stdio_write(void *userdata, const void *ptr, size_t size,
|
||||
return bytes;
|
||||
}
|
||||
|
||||
static SDL_bool SDLCALL stdio_close(void *userdata)
|
||||
static bool SDLCALL stdio_close(void *userdata)
|
||||
{
|
||||
IOStreamStdioData *rwopsdata = (IOStreamStdioData *) userdata;
|
||||
SDL_bool status = SDL_TRUE;
|
||||
bool status = true;
|
||||
if (rwopsdata->autoclose) {
|
||||
if (fclose(rwopsdata->fp) != 0) {
|
||||
SDL_SetError("Couldn't close stream");
|
||||
status = SDL_FALSE;
|
||||
status = false;
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
SDL_IOStream *SDL_RWFromFP(FILE *fp, SDL_bool autoclose)
|
||||
SDL_IOStream *SDL_RWFromFP(FILE *fp, bool autoclose)
|
||||
{
|
||||
SDL_IOStreamInterface iface;
|
||||
IOStreamStdioFPData *rwopsdata;
|
||||
@@ -1568,7 +1593,7 @@ SDL_IOStream *SDL_RWFromFP(FILE *fp, SDL_bool autoclose)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SDL_zero(iface);
|
||||
SDL_INIT_INTERFACE(&iface);
|
||||
/* There's no stdio_size because SDL_GetIOSize emulates it the same way we'd do it for stdio anyhow. */
|
||||
iface.seek = stdio_seek;
|
||||
iface.read = stdio_read;
|
||||
@@ -1591,13 +1616,13 @@ The internal `FILE *` is available through a standard SDL_IOStream property, for
|
||||
On Apple platforms, SDL_RWFromFile (now called SDL_IOFromFile) no longer tries to read from inside the app bundle's resource directory, instead now using the specified path unchanged. One can use SDL_GetBasePath() to find the resource directory on these platforms.
|
||||
|
||||
|
||||
The functions SDL_ReadU8(), SDL_ReadU16LE(), SDL_ReadU16BE(), SDL_ReadU32LE(), SDL_ReadU32BE(), SDL_ReadU64LE(), and SDL_ReadU64BE() now return SDL_TRUE if the read succeeded and SDL_FALSE if it didn't, and store the data in a pointer passed in as a parameter.
|
||||
The functions SDL_ReadU8(), SDL_ReadU16LE(), SDL_ReadU16BE(), SDL_ReadU32LE(), SDL_ReadU32BE(), SDL_ReadU64LE(), and SDL_ReadU64BE() now return true if the read succeeded and false if it didn't, and store the data in a pointer passed in as a parameter.
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_RWFromConstMem() => SDL_IOFromConstMem()
|
||||
* SDL_RWFromFile() => SDL_IOFromFile()
|
||||
* SDL_RWFromMem() => SDL_IOFromMem()
|
||||
* SDL_RWclose() => SDL_CloseIO(), returns SDL_bool
|
||||
* SDL_RWclose() => SDL_CloseIO(), returns bool
|
||||
* SDL_RWread() => SDL_ReadIO()
|
||||
* SDL_RWseek() => SDL_SeekIO()
|
||||
* SDL_RWsize() => SDL_GetIOSize()
|
||||
@@ -1637,6 +1662,7 @@ The following symbols have been removed:
|
||||
* SDL_SCANCODE_APP2
|
||||
|
||||
The following symbols have been renamed:
|
||||
* SDL_NUM_SCANCODES => SDL_SCANCODE_COUNT
|
||||
* SDL_SCANCODE_AUDIOFASTFORWARD => SDL_SCANCODE_MEDIA_FAST_FORWARD
|
||||
* SDL_SCANCODE_AUDIOMUTE => SDL_SCANCODE_MUTE
|
||||
* SDL_SCANCODE_AUDIONEXT => SDL_SCANCODE_MEDIA_NEXT_TRACK
|
||||
@@ -1678,7 +1704,7 @@ Removed SDL_SensorGetDataWithTimestamp(), if you want timestamps for the sensor
|
||||
The following functions have been renamed:
|
||||
* SDL_SensorClose() => SDL_CloseSensor()
|
||||
* SDL_SensorFromInstanceID() => SDL_GetSensorFromID()
|
||||
* SDL_SensorGetData() => SDL_GetSensorData(), returns SDL_bool
|
||||
* SDL_SensorGetData() => SDL_GetSensorData(), returns bool
|
||||
* SDL_SensorGetInstanceID() => SDL_GetSensorID()
|
||||
* SDL_SensorGetName() => SDL_GetSensorName()
|
||||
* SDL_SensorGetNonPortableType() => SDL_GetSensorNonPortableType()
|
||||
@@ -1704,7 +1730,7 @@ This header has been removed and a simplified version of this API has been added
|
||||
The standard C headers like stdio.h and stdlib.h are no longer included, you should include them directly in your project if you use non-SDL C runtime functions.
|
||||
M_PI is no longer defined in SDL_stdinc.h, you can use the new symbols SDL_PI_D (double) and SDL_PI_F (float) instead.
|
||||
|
||||
SDL_bool is now defined as bool, and is 1 byte instead of the size of an int.
|
||||
bool is now defined as bool, and is 1 byte instead of the size of an int.
|
||||
|
||||
SDL3 attempts to apply consistency to case-insensitive string functions. In SDL2, things like SDL_strcasecmp() would usually only work on English letters, and depending on the user's locale, possibly not even those. In SDL3, consistency is applied:
|
||||
|
||||
@@ -1719,17 +1745,26 @@ SDL3 attempts to apply consistency to case-insensitive string functions. In SDL2
|
||||
|
||||
Please note that the case-folding technique used by SDL3 will not produce correct results for the "Turkish 'I'"; this one letter is a surprisingly hard problem in the Unicode world, and since these functions do not specify the human language in use, we have chosen to ignore this problem.
|
||||
|
||||
SDL_strtoll(), SDL_strtoull(), SDL_lltoa(), and SDL_ulltoa() use long long values instead of 64-bit values, to match their C runtime counterparts.
|
||||
|
||||
SDL_setenv() is not thread-safe and has been renamed SDL_setenv_unsafe().
|
||||
|
||||
The following macros have been removed:
|
||||
* SDL_TABLESIZE() - use SDL_arraysize() instead
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_size_add_overflow() => SDL_size_add_check_overflow(), returns SDL_bool
|
||||
* SDL_size_mul_overflow() => SDL_size_mul_check_overflow(), returns SDL_bool
|
||||
* SDL_size_add_overflow() => SDL_size_add_check_overflow(), returns bool
|
||||
* SDL_size_mul_overflow() => SDL_size_mul_check_overflow(), returns bool
|
||||
* SDL_strtokr() => SDL_strtok_r()
|
||||
|
||||
The following functions have been removed:
|
||||
* SDL_memcpy4()
|
||||
|
||||
The following symbols have been renamed:
|
||||
* SDL_FALSE => false
|
||||
* SDL_TRUE => true
|
||||
* SDL_bool => bool
|
||||
|
||||
## SDL_surface.h
|
||||
|
||||
SDL_Surface has been simplified and internal details are no longer in the public structure.
|
||||
@@ -1797,34 +1832,34 @@ But if you're migrating your code which uses masks, you probably have a format i
|
||||
|
||||
SDL_BlitSurface() and SDL_BlitSurfaceScaled() now have a const `dstrect` parameter and do not fill it in with the final destination rectangle.
|
||||
|
||||
SDL_BlitSurfaceScaled() and SDL_BlitSurfaceUncheckedScaled() now take a scale paramater.
|
||||
SDL_BlitSurfaceScaled() and SDL_BlitSurfaceUncheckedScaled() now take a scale parameter.
|
||||
|
||||
SDL_SoftStretch() now takes a scale paramater.
|
||||
SDL_SoftStretch() now takes a scale parameter.
|
||||
|
||||
SDL_PixelFormat is used instead of Uint32 for API functions that refer to pixel format by enumerated value.
|
||||
|
||||
SDL_SetSurfaceColorKey() takes an SDL_bool to enable and disable colorkey. RLE acceleration isn't controlled by the parameter, you should use SDL_SetSurfaceRLE() to change that separately.
|
||||
SDL_SetSurfaceColorKey() takes an bool to enable and disable colorkey. RLE acceleration isn't controlled by the parameter, you should use SDL_SetSurfaceRLE() to change that separately.
|
||||
|
||||
SDL_SetSurfaceRLE() takes an SDL_bool to enable and disable RLE acceleration.
|
||||
SDL_SetSurfaceRLE() takes an bool to enable and disable RLE acceleration.
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_BlitScaled() => SDL_BlitSurfaceScaled(), returns SDL_bool
|
||||
* SDL_BlitScaled() => SDL_BlitSurfaceScaled(), returns bool
|
||||
* SDL_ConvertSurfaceFormat() => SDL_ConvertSurface()
|
||||
* SDL_FillRect() => SDL_FillSurfaceRect(), returns SDL_bool
|
||||
* SDL_FillRects() => SDL_FillSurfaceRects(), returns SDL_bool
|
||||
* SDL_FillRect() => SDL_FillSurfaceRect(), returns bool
|
||||
* SDL_FillRects() => SDL_FillSurfaceRects(), returns bool
|
||||
* SDL_FreeSurface() => SDL_DestroySurface()
|
||||
* SDL_GetClipRect() => SDL_GetSurfaceClipRect(), returns SDL_bool
|
||||
* SDL_GetColorKey() => SDL_GetSurfaceColorKey(), returns SDL_bool
|
||||
* SDL_GetClipRect() => SDL_GetSurfaceClipRect(), returns bool
|
||||
* SDL_GetColorKey() => SDL_GetSurfaceColorKey(), returns bool
|
||||
* SDL_HasColorKey() => SDL_SurfaceHasColorKey()
|
||||
* SDL_HasSurfaceRLE() => SDL_SurfaceHasRLE()
|
||||
* SDL_LoadBMP_RW() => SDL_LoadBMP_IO()
|
||||
* SDL_LowerBlit() => SDL_BlitSurfaceUnchecked(), returns SDL_bool
|
||||
* SDL_LowerBlitScaled() => SDL_BlitSurfaceUncheckedScaled(), returns SDL_bool
|
||||
* SDL_SaveBMP_RW() => SDL_SaveBMP_IO(), returns SDL_bool
|
||||
* SDL_LowerBlit() => SDL_BlitSurfaceUnchecked(), returns bool
|
||||
* SDL_LowerBlitScaled() => SDL_BlitSurfaceUncheckedScaled(), returns bool
|
||||
* SDL_SaveBMP_RW() => SDL_SaveBMP_IO(), returns bool
|
||||
* SDL_SetClipRect() => SDL_SetSurfaceClipRect()
|
||||
* SDL_SetColorKey() => SDL_SetSurfaceColorKey(), returns SDL_bool
|
||||
* SDL_UpperBlit() => SDL_BlitSurface(), returns SDL_bool
|
||||
* SDL_UpperBlitScaled() => SDL_BlitSurfaceScaled(), returns SDL_bool
|
||||
* SDL_SetColorKey() => SDL_SetSurfaceColorKey(), returns bool
|
||||
* SDL_UpperBlit() => SDL_BlitSurface(), returns bool
|
||||
* SDL_UpperBlitScaled() => SDL_BlitSurfaceScaled(), returns bool
|
||||
|
||||
The following symbols have been removed:
|
||||
* SDL_SWSURFACE
|
||||
@@ -1850,10 +1885,12 @@ SDL_RequestAndroidPermission is no longer a blocking call; the caller now provid
|
||||
SDL_iPhoneSetAnimationCallback() and SDL_iPhoneSetEventPump() have been renamed to SDL_SetiOSAnimationCallback() and SDL_SetiOSEventPump(), respectively. SDL2 has had macros to provide this new name with the old symbol since the introduction of the iPad, but now the correctly-named symbol is the only option.
|
||||
|
||||
The following functions have been removed:
|
||||
* SDL_GetWinRTFSPathUNICODE() - WinRT support was removed in SDL3.
|
||||
* SDL_GetWinRTFSPathUTF8() - WinRT support was removed in SDL3.
|
||||
* SDL_RenderGetD3D11Device() - replaced with the "SDL.renderer.d3d11.device" property
|
||||
* SDL_RenderGetD3D12Device() - replaced with the "SDL.renderer.d3d12.device" property
|
||||
* SDL_RenderGetD3D9Device() - replaced with the "SDL.renderer.d3d9.device" property
|
||||
* SDL_GetWinRTFSPathUNICODE() - Use SDL_GetWinRTFSPath() and SDL_iconv_string to convert from UTF-8 to UTF-16.
|
||||
* SDL_WinRTGetDeviceFamily() - WinRT support was removed in SDL3.
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_AndroidBackButton() => SDL_SendAndroidBackButton()
|
||||
@@ -1862,23 +1899,21 @@ The following functions have been renamed:
|
||||
* SDL_AndroidGetExternalStorageState() => SDL_GetAndroidExternalStorageState()
|
||||
* SDL_AndroidGetInternalStoragePath() => SDL_GetAndroidInternalStoragePath()
|
||||
* SDL_AndroidGetJNIEnv() => SDL_GetAndroidJNIEnv()
|
||||
* SDL_AndroidRequestPermission() => SDL_RequestAndroidPermission(), returns SDL_bool
|
||||
* SDL_AndroidRequestPermission() => SDL_RequestAndroidPermission(), returns bool
|
||||
* SDL_AndroidRequestPermissionCallback() => SDL_RequestAndroidPermissionCallback()
|
||||
* SDL_AndroidSendMessage() => SDL_SendAndroidMessage(), returns SDL_bool
|
||||
* SDL_AndroidShowToast() => SDL_ShowAndroidToast(), returns SDL_bool
|
||||
* SDL_DXGIGetOutputInfo() => SDL_GetDXGIOutputInfo(), returns SDL_bool
|
||||
* SDL_AndroidSendMessage() => SDL_SendAndroidMessage(), returns bool
|
||||
* SDL_AndroidShowToast() => SDL_ShowAndroidToast(), returns bool
|
||||
* SDL_DXGIGetOutputInfo() => SDL_GetDXGIOutputInfo(), returns bool
|
||||
* SDL_Direct3D9GetAdapterIndex() => SDL_GetDirect3D9AdapterIndex()
|
||||
* SDL_GDKGetDefaultUser() => SDL_GetGDKDefaultUser(), returns SDL_bool
|
||||
* SDL_GDKGetTaskQueue() => SDL_GetGDKTaskQueue(), returns SDL_bool
|
||||
* SDL_LinuxSetThreadPriority() => SDL_SetLinuxThreadPriority(), returns SDL_bool
|
||||
* SDL_LinuxSetThreadPriorityAndPolicy() => SDL_SetLinuxThreadPriorityAndPolicy(), returns SDL_bool
|
||||
* SDL_GDKGetDefaultUser() => SDL_GetGDKDefaultUser(), returns bool
|
||||
* SDL_GDKGetTaskQueue() => SDL_GetGDKTaskQueue(), returns bool
|
||||
* SDL_LinuxSetThreadPriority() => SDL_SetLinuxThreadPriority(), returns bool
|
||||
* SDL_LinuxSetThreadPriorityAndPolicy() => SDL_SetLinuxThreadPriorityAndPolicy(), returns bool
|
||||
* SDL_OnApplicationDidBecomeActive() => SDL_OnApplicationDidEnterForeground()
|
||||
* SDL_OnApplicationWillResignActive() => SDL_OnApplicationWillEnterBackground()
|
||||
* SDL_WinRTGetDeviceFamily() => SDL_GetWinRTDeviceFamily()
|
||||
* SDL_GetWinRTFSPathUTF8() => SDL_GetWinRTFSPath()
|
||||
* SDL_iOSSetAnimationCallback() => SDL_SetiOSAnimationCallback(), returns SDL_bool
|
||||
* SDL_iOSSetAnimationCallback() => SDL_SetiOSAnimationCallback(), returns bool
|
||||
* SDL_iOSSetEventPump() => SDL_SetiOSEventPump()
|
||||
* SDL_iPhoneSetAnimationCallback() => SDL_SetiOSAnimationCallback(), returns SDL_bool
|
||||
* SDL_iPhoneSetAnimationCallback() => SDL_SetiOSAnimationCallback(), returns bool
|
||||
* SDL_iPhoneSetEventPump() => SDL_SetiOSEventPump()
|
||||
|
||||
## SDL_syswm.h
|
||||
@@ -1986,7 +2021,7 @@ SDL_GetTLS() and SDL_SetTLS() take a pointer to a TLS ID, and will automatically
|
||||
The following functions have been renamed:
|
||||
* SDL_TLSCleanup() => SDL_CleanupTLS()
|
||||
* SDL_TLSGet() => SDL_GetTLS()
|
||||
* SDL_TLSSet() => SDL_SetTLS(), returns SDL_bool
|
||||
* SDL_TLSSet() => SDL_SetTLS(), returns bool
|
||||
* SDL_ThreadID() => SDL_GetCurrentThreadID()
|
||||
|
||||
The following functions have been removed:
|
||||
@@ -2139,7 +2174,7 @@ SDL_GL_GetProcAddress() and SDL_EGL_GetProcAddress() now return `SDL_FunctionPoi
|
||||
|
||||
SDL_GL_DeleteContext() has been renamed to SDL_GL_DestroyContext to match SDL naming conventions (and glX/EGL!).
|
||||
|
||||
SDL_GL_GetSwapInterval() takes the interval as an output parameter and returns SDL_TRUE if the function succeeds or SDL_FALSE if there was an error.
|
||||
SDL_GL_GetSwapInterval() takes the interval as an output parameter and returns true if the function succeeds or false if there was an error.
|
||||
|
||||
SDL_GL_GetDrawableSize() has been removed. SDL_GetWindowSizeInPixels() can be used in its place.
|
||||
|
||||
@@ -2150,8 +2185,8 @@ SDL_WindowFlags is used instead of Uint32 for API functions that refer to window
|
||||
SDL_GetWindowOpacity() directly returns the opacity instead of using an out parameter.
|
||||
|
||||
The following functions have been renamed:
|
||||
* SDL_GL_DeleteContext() => SDL_GL_DestroyContext(), returns SDL_bool
|
||||
* SDL_GetClosestDisplayMode() => SDL_GetClosestFullscreenDisplayMode(), returns SDL_bool
|
||||
* SDL_GL_DeleteContext() => SDL_GL_DestroyContext(), returns bool
|
||||
* SDL_GetClosestDisplayMode() => SDL_GetClosestFullscreenDisplayMode(), returns bool
|
||||
* SDL_GetDisplayOrientation() => SDL_GetCurrentDisplayOrientation()
|
||||
* SDL_GetPointDisplayIndex() => SDL_GetDisplayForPoint()
|
||||
* SDL_GetRectDisplayIndex() => SDL_GetDisplayForRect()
|
||||
@@ -2159,7 +2194,7 @@ The following functions have been renamed:
|
||||
* SDL_GetWindowDisplayMode() => SDL_GetWindowFullscreenMode()
|
||||
* SDL_HasWindowSurface() => SDL_WindowHasSurface()
|
||||
* SDL_IsScreenSaverEnabled() => SDL_ScreenSaverEnabled()
|
||||
* SDL_SetWindowDisplayMode() => SDL_SetWindowFullscreenMode(), returns SDL_bool
|
||||
* SDL_SetWindowDisplayMode() => SDL_SetWindowFullscreenMode(), returns bool
|
||||
|
||||
The following functions have been removed:
|
||||
* SDL_GetClosestFullscreenDisplayMode()
|
||||
@@ -2173,6 +2208,7 @@ The following functions have been removed:
|
||||
* SDL_SetWindowData() - use SDL_GetWindowProperties() instead
|
||||
* SDL_CreateWindowFrom() - use SDL_CreateWindowWithProperties() with the properties that allow you to wrap an existing window
|
||||
* SDL_SetWindowInputFocus() - use SDL_RaiseWindow() instead
|
||||
* SDL_SetWindowModalFor() - use SDL_SetWindowParent() with SDL_SetWindowModal() instead
|
||||
|
||||
The SDL_Window id type is named SDL_WindowID
|
||||
|
||||
|
||||
Reference in New Issue
Block a user