There does not appear to be any note here about SDL_GetDisplayUsableBounds
sdl2/SDL_GetDisplayUsableBounds(0, was always the default display.
The primary display (displayIndex zero) is always located at 0,0.
with SDL3, that is now always invalid.
SDL_GetDisplayUsableBounds(SDL_DisplayID displayID
typedef Uint32 SDL_DisplayID;
Remarks
If the display is disconnected and reconnected, it will get a new ID.
The value 0 is an invalid ID.
Readme-migration does note that SDL_DisplayID is invalid, but it doesnt note that SDL_GetDisplayUsableBounds will compile and execute with no warnings that the SDL2 form is entirely invalid.
There does not appear to be any note here about SDL_GetDisplayUsableBounds
sdl2/SDL_GetDisplayUsableBounds(0,was always the default display.with SDL3, that is now always invalid.
Readme-migration does note that SDL_DisplayID is invalid, but it doesnt note that SDL_GetDisplayUsableBounds will compile and execute with no warnings that the SDL2 form is entirely invalid.