Bind applicable functionality from the below release notes.
Do so in a manner that retains compatibility when compiling against older SDL versions.
SDL 2.0.4 Release notes
In addition to numerous bug fixes, here are the major changes since 2.0.3:
General:
Added support for web applications using Emscripten, see docs/README-emscripten.md for more information
Added support for web applications using Native Client (NaCl), see docs/README-nacl.md for more information
Added an API to queue audio instead of using the audio callback:
SDL_QueueAudio(), SDL_GetQueuedAudioSize(), SDL_ClearQueuedAudio()
Added events for audio device hot plug support:
SDL_AUDIODEVICEADDED, SDL_AUDIODEVICEREMOVED
Added SDL_PointInRect()
Added SDL_HasAVX2() to detect CPUs with AVX2 support
Added SDL_SetWindowHitTest() to let apps treat parts of their SDL window like traditional window decorations (drag areas, resize areas)
Added SDL_GetGrabbedWindow() to get the window that currently has input grab, if any
Added SDL_RenderIsClipEnabled() to tell whether clipping is currently enabled in a renderer
Added SDL_CaptureMouse() to capture the mouse to get events while the mouse is not in your window
Added SDL_WarpMouseGlobal() to warp the mouse cursor in global screen space
Added SDL_GetGlobalMouseState() to get the current mouse state outside of an SDL window* Added a direction field to mouse wheel events to tell whether they are flipped
(natural) or not
Added GL_CONTEXT_RELEASE_BEHAVIOR GL attribute (maps to [WGL|GLX]_ARBcontext
flush_control extension)
Added EGL_KHR_create_context support to allow OpenGL ES version selection on s
ome platforms* Added NV12 and NV21 YUV texture support for OpenGL and OpenGL ES 2.0 renderers
Added a Vivante video driver that is used on various SoC platforms
Added an event SDL_RENDER_DEVICE_RESET that is sent from the D3D renderers when the D3D device is lost, and from Android's event loop when the GLES context ha
d to be recreated
Added a hint SDL_HINT_NO_SIGNAL_HANDLERS to disable SDL's built in signal hand
ling* Added a hint SDL_HINT_THREAD_STACK_SIZE to set the stack size of SDL's threads
Added SDL_sqrtf(), SDL_tan(), and SDL_tanf() to the stdlib routines
Improved support for WAV and BMP files with unusual chunks in them
Renamed SDL_assert_data to SDL_AssertData and SDL_assert_state to SDL_AssertSt
ate
Added a hint SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN to prevent window interaction while cursor is hidden
Added SDL_GetDisplayDPI() to get the DPI information for a display* Added SDL_JoystickCurrentPowerLevel() to get the battery level of a joystick
Added SDL_JoystickFromInstanceID(), as a helper function, to get the SDL_Joystick* that an event is referring to.
Added SDL_GameControllerFromInstanceID(), as a helper function, to get the SDL_GameController* that an event is referring to.
Windows:
Added support for Windows Phone 8.1 and Windows 10/UWP (Universal Windows Platform)
Timer resolution is now 1 ms by default, adjustable with the SDL_HINT_TIMER_RESOLUTION hint
SDLmain no longer depends on the C runtime, so you can use the same .lib in both Debug and Release builds
Added SDL_SetWindowsMessageHook() to set a function to be called for every windows message before TranslateMessage()
Added a hint SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP to control whether SDL_PumpEvents() processes the Windows message loop
You can distinguish between real mouse and touch events by looking for SDL_TOUCH_MOUSEID in the mouse event "which" field
SDL_SysWMinfo now contains the window HDC
Added support for Unicode command line options
Prevent beeping when Alt-key combos are pressed
SDL_SetTextInputRect() re-positions the OS-rendered IME
Added a hint SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 to prevent generating SDL_WINDOWEVENT_CLOSE events when Alt-F4 is pressed
Added a hint SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING to use the old axis and button mapping for XInput devices (deprecated)
Mac OS X:
Implemented drag-and-drop support
Improved joystick hot-plug detection
The SDL_WINDOWEVENT_EXPOSED window event is triggered in the appropriate situations
Fixed relative mouse mode when the application loses/regains focus
Fixed bugs related to transitioning to and from Spaces-aware fullscreen-desktop mode
Fixed the refresh rate of display modes
SDL_SysWMInfo is now ARC-compatible
Added a hint SDL_HINT_MAC_BACKGROUND_APP to prevent forcing the application to become a foreground process
Linux:
Enabled building with Mir and Wayland support by default.
Added IBus IME support
Added a hint SDL_HINT_IME_INTERNAL_EDITING to control whether IBus should handle text editing internally instead of sending SDL_TEXTEDITING events
Added a hint SDL_HINT_VIDEO_X11_NET_WM_PING to allow disabling _NET_WM_PING protocol handling in SDL_CreateWindow()
Added support for multiple audio devices when using Pulseaudio
Fixed duplicate mouse events when using relative mouse motion
iOS:
Added support for iOS 8
The SDL_WINDOW_ALLOW_HIGHDPI window flag now enables high-dpi support, and SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() gets the window resolution in pixels
SDL_GetWindowSize() and display mode sizes are in the "DPI-independent points" / "screen coordinates" coordinate space rather than pixels (matches OS X behavior)
Added native resolution support for the iPhone 6 Plus
Added support for MFi game controllers
Added support for the hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK
Added sRGB OpenGL ES context support on iOS 7+
Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER
SDL_SysWMinfo now contains the OpenGL ES framebuffer and color renderbuffer objects used by the window's active GLES view
Fixed various rotation and orientation issues
Fixed memory leaks
Android:
Added a hint SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH to prevent mouse events from being registered as touch events
Added hints SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION and SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION
Added support for SDL_DisableScreenSaver(), SDL_EnableScreenSaver() and the hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER
Added support for SDL_ShowMessageBox() and SDL_ShowSimpleMessageBox()
SDL 2.0.4 Release notes
In addition to numerous bug fixes, here are the major changes since 2.0.3: General:
Windows:
Mac OS X:
Linux:
iOS:
Android:
Raspberry Pi: