Browse Source

Added documentation for the 3.4.0 release

Sam Lantinga 1 week ago
parent
commit
9bf86a2db3
1 changed files with 53 additions and 1 deletions
  1. 53 1
      WhatsNew.txt

+ 53 - 1
WhatsNew.txt

@@ -8,43 +8,95 @@ This is a list of major changes in SDL's version history.
 General:
 * Added SDL_CreateAnimatedCursor() to create animated color cursors
 * Added SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState(), and SDL_GetWindowProgressValue() to show progress in the window's taskbar icon on Windows and Linux
-* Added SDL_GetGPUDeviceProperties() to get the properties of an SDL GPU device
+* Added GPU device creation properties to enable the GPU API on older hardware if you're not using these features:
+  - SDL_PROP_GPU_DEVICE_CREATE_FEATURE_CLIP_DISTANCE_BOOLEAN
+  - SDL_PROP_GPU_DEVICE_CREATE_FEATURE_DEPTH_CLAMPING_BOOLEAN
+  - SDL_PROP_GPU_DEVICE_CREATE_FEATURE_INDIRECT_DRAW_FIRST_INSTANCE_BOOLEAN
+  - SDL_PROP_GPU_DEVICE_CREATE_FEATURE_ANISOTROPY_BOOLEAN
+  - SDL_PROP_GPU_DEVICE_CREATE_D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN
+* Added SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER to enable configuring Vulkan features when creating a GPU device
+* Added SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN to allow requiring Vulkan hardware acceleration when creating a GPU device
+* Added SDL_GetGPUDeviceProperties() to query information from a GPU device:
+  - SDL_PROP_GPU_DEVICE_NAME_STRING
+  - SDL_PROP_GPU_DEVICE_DRIVER_NAME_STRING
+  - SDL_PROP_GPU_DEVICE_DRIVER_VERSION_STRING
+  - SDL_PROP_GPU_DEVICE_DRIVER_INFO_STRING
 * Added SDL_GetPixelFormatFromGPUTextureFormat() and SDL_GetGPUTextureFormatFromPixelFormat()
 * Added SDL_CreateGPURenderer() and SDL_GetGPURendererDevice() to create a 2D renderer for use with GPU rendering.
 * Added SDL_CreateGPURenderState(), SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState(), and SDL_DestroyGPURenderState() to use fragment shaders with a GPU 2D renderer
+* Added SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER to create a 2D texture from an existing GPU texture
+* Added SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER to get the GPU texture from a 2D texture when using the GPU 2D renderer
 * Added support for YUV textures and HDR colorspaces to the GPU 2D renderer
 * Added support for textures with palettes, and SDL_GetTexturePalette() and SDL_SetTexturePalette() to interact with them
 * Added SDL_RenderTexture9GridTiled() to do tiled instead of stretched 9-grid texture rendering
 * Added SDL_GetDefaultTextureScaleMode() and SDL_SetDefaultTextureScaleMode() to set the texture scale mode for new textures
 * Added SDL_GetRenderTextureAddressMode() and SDL_SetRenderTextureAddressMode() to change the texture addressing mode
 * Added SDL_TEXTURE_ADDRESS_WRAP to allow wrapping of textures if the renderer has SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN set
+* The default YUV colorspace is BT.601 limited range, for compatibility with SDL2
+* Added SDL_SCALEMODE_PIXELART as an improved scaling algorithm for pixel art without introducing blurring
+* Added SDL_FLIP_HORIZONTAL_AND_VERTICAL to flip a surface both horizontally and vertically
 * Added SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG(), and SDL_SavePNG_IO() to load and save PNG images
+* Added SDL_LoadSurface() and SDL_LoadSurface_IO() to detect BMP and PNG formats and load them as surfaces
+* Added SDL_PROP_SURFACE_ROTATION_NUMBER to indicate the rotation needed to display camera images upright
 * Added SDL_RotateSurface() to create a rotated copy of a surface
+* SDL_EVENT_WINDOW_EXPOSED now sets data1 to true if it is sent during live resizing
+* Added SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED, which is sent when the usable desktop bounds change
+* Added SDL_EVENT_SCREEN_KEYBOARD_SHOWN, which is sent when the on-screen keyboard has been shown
+* Added SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, which is sent when the on-screen keyboard has been hidden
+* Added pinch gesture events: SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE, SDL_EVENT_PINCH_END
+* SDL_EVENT_AUDIO_DEVICE_ADDED will be sent during initialization for each audio device
+* SDL_GetCameraPermissionState() returns SDL_CameraPermissionState instead of int
 * Added SDL_PutAudioStreamDataNoCopy() to do more efficient audio stream processing in some cases
 * Added SDL_PutAudioStreamPlanarData() to add planar audio data instead of interleaved data to an audio stream
 * Added SDL_HINT_AUDIO_DEVICE_RAW_STREAM to signal that the OS shouldn't do further audio processing, useful for applications that handle noise canceling, etc.
+* Added SDL_PROP_AUDIOSTREAM_AUTO_CLEANUP_BOOLEAN to allow streams that persist beyond the audio subsystem lifetime.
 * Added enhanced support for 8BitDo controllers
 * Added enhanced support for FlyDigi controllers
 * Added enhanced support for Hand Held Legend SInput controllers
+* Added support for wired Nintendo Switch 2 controllers when built with libusb
 * Added SDL_hid_get_properties() to associate SDL properties with HID devices
+* Added SDL_PROP_HIDAPI_LIBUSB_DEVICE_HANDLE_POINTER to query the libusb handle from an SDL_hid_device, if it's been opened with libusb
 * Added SDL_SetRelativeMouseTransform() to add custom mouse input transformation
 * Added SDL_GetPenDeviceType() to determine whether a pen is on the screen or on a separate touchpad
+* SDL_HINT_MAIN_CALLBACK_RATE may be set to a floating point callback rate
 * Added SDL_GetEventDescription() to get an English description of an event, suitable for logging
+* Added SDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER to allow custom freeing of the memory used by SDL_IOFromMem() and SDL_IOFromConstMem()
+* Added SDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING to set the working directory for new processes
 * Added verbose log output when the DEBUG_INVOCATION environment variable is set to "1"
 * Added SDL_AddAtomicU32()
 * Added SDL_GetSystemPageSize() to get the system page size
+* Added SDL_ALIGNED() to signal that data should have a specific alignment
 
 Windows:
 * Added SDL_HINT_RENDER_DIRECT3D11_WARP to enable D3D11 software rasterization
+* Using SDL_InsertGPUDebugLabel(), SDL_PushGPUDebugGroup(), and SDL_PopGPUDebugGroup() requires WinPixEventRuntime.dll to be in your PATH or in the same directory as your executable
+* Added SDL_PROP_DISPLAY_WINDOWS_HMONITOR_POINTER so you can query the HMONITOR associated with a display
 * SDL_HINT_AUDIO_DEVICE_STREAM_ROLE is used by the WASAPI audio driver to set the audio stream category
+* Added SDL_HINT_AUDIO_DEVICE_RAW_STREAM to signal whether the OS audio driver should do additional signal processing
+* Added SDL_HINT_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYS to allow disabling some system hotkeys when in raw input mode
 * SDL_HINT_WINDOWS_GAMEINPUT is disabled by default
 
+macOS:
+* Added SDL_HINT_MAC_PRESS_AND_HOLD to control whether holding down a key will repeat the pressed key or open the accents menu
+
 Linux:
 * Added atomic support for KMSDRM
 * Added SDL_HINT_KMSDRM_ATOMIC to control whether KMSDRM will use atomic functionality
+* Added SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER so you can query the wl_output associated with a display
 
 Emscripten:
 * Added SDL_HINT_EMSCRIPTEN_FILL_DOCUMENT for applications that don't want to be fullscreen, but would like to fill the window
+* Added SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING to allow setting the SDL canvas ID, and SDL_PROP_WINDOW_EMSCRIPTEN_CANVAS_ID_STRING to query it on existing windows
+* Added SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_FILL_DOCUMENT_BOOLEAN to indicate that the window should fill the document, and SDL_PROP_WINDOW_EMSCRIPTEN_FILL_DOCUMENT_BOOLEAN to query it on existing windows
+* Added SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING to specify where keyboard input is bound, and SDL_PROP_WINDOW_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING to query it on existing windows
+
+iOS:
+* SDL now supports window scenes, fixing the warning "CLIENT OF UIKIT REQUIRES UPDATE"
+* Added SDL_PROP_WINDOW_CREATE_WINDOWSCENE_POINTER to specify the window scene for a window
+
+visionOS:
+* The default refresh rate has been increased to 90Hz
+* SDL_SetWindowSize() changes the size of the window on Vision Pro headsets
 
 PlayStation 2:
 * Added the following hints to control the display parameters: SDL_HINT_PS2_GS_WIDTH, SDL_HINT_PS2_GS_HEIGHT, SDL_HINT_PS2_GS_PROGRESSIVE, SDL_HINT_PS2_GS_MODE