發布 SDL 3.4.0 多媒體庫

SDL 3.4.0(Simple DirectMedia Layer)現已發布。該庫旨在簡化遊戲和多媒體應用程式的開發,提供硬體加速的 2D 和 3D 圖形、輸入處理、音訊播放以及透過 OpenGL、OpenGL ES、Metal、Direct3D 和 Vulkan 進行的 3D 渲染等功能。程式碼使用 C 語言編寫,並採用 Zlib 授權。 SDL 提供了綁定,方便在用各種程式語言編寫的專案中使用。

SDL 3.4.0 是 SDL 3.x 系列的第二個主要穩定分支——第一個穩定分支是 3.2.x,而 3.3.x 則被定位為實驗版本。 SDL 3.4.0 的主要變更包括:改進了 3D GPU API 和 2D 渲染 API 之間的可移植性;擴展了對使用 Emscripten 編譯器進行 WebAssambly 編譯的支援;改進了對繪圖板和數位筆的支援;以及原生支援 PNG 影像格式。

SDL 3.4.0 的新增功能包括:

  • 已新增對 PNG 影像的內建支持,並提供 SDL_LoadPNG()、SDL_LoadPNG_IO()、SDL_SavePNG() 和 SDL_SavePNG_IO() 函數用於處理 PNG 影像。此外,還新增了 SDL_LoadSurface() 和 SDL_LoadSurface_IO() 函數,用於確定影像格式(PNG 或 BMP)並將其載入為表面。
  • 新增了 SDL_RotateSurface() 函數,用於建立曲面的旋轉副本。
  • 新增了用於建立彩色動畫遊標的 SDL_CreateAnimatedCursor() 函數,以及用於根據螢幕縮放等級自動縮放遊標的 SDL_HINT_MOUSE_DPI_SCALE_CURSORS 標誌。
  • 新增了 SDL_SetWindowProgressState()、SDL_SetWindowProgressValue()、SDL_GetWindowProgressState() 和 SDL_GetWindowProgressValue() 函數,用於在應用程式的工作列圖示中顯示操作進度。
  • 增加了在舊硬體上使用 GPU API 的屬性。
  • 新增了 SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER 和 SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEA 屬性,用於在建立 GPU 設備時配置和啟用 Vulkan API 功能。
  • 新增了 SDL_GetGPUDeviceProperties() 函數,用於查詢 GPU 資訊。
  • 新增了 SDL_CreateGPURenderer() 和 SDL_GetGPURendererDevice() 函數,以啟用 GPU 進行 2D 渲染;以及 SDL_SetGPURenderStateFragmentUniforms()、SDL_SetGPURenderState() 和 SDL_DestroyGPURenderState() 進行 2D 渲染函數,以啟用著色器。
  • 現在,2D GPU 渲染支援 YUV 紋理和 HDR。新增了對帶調色板紋理的支持,可透過 SDL_GetTexturePalette() 和 SDL_SetTexturePalette() 函數實現。新增了用於轉換紋理格式的 SDL_GetPixelFormatFromGPUTextureFormat() 函數,以及用於從 GPU 紋理建立 2D 紋理的 SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER 參數。此外,還新增了用於配置紋理的函數 SDL_RenderTexture9GridTiled()、SDL_GetDefaultTextureScaleMode()、SDL_SetDefaultTextureScaleMode()、SDL_GetRenderTextureAddressMode() 和 SDL_SetRenderTextureAddressMode()。
  • 新增了 SDL_SCALEMODE_PIXELART 參數,以使用像素藝術優化縮放演算法。
  • 實作了 SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED、SDL_EVENT_SCREEN_KEYBOARD_SHOWN、SDL_EVENT_SCREEN_KEYBOARD_HIDDEN、SDL_EVENT_PINCH_BEGIN、SDL_EVENT_PINCH_DATEENT_PINCH_DATE、DPINCH_DEVENT_PINCH_EVENT_PINCH_DATE. SDL_EVENT_AUDIO_DEVICE_ADDED 事件,這些事件會在更改邊界、顯示/隱藏螢幕鍵盤、螢幕手勢和新增音訊裝置時觸發。
  • 新增了 SDL_PutAudioStreamDataNoCopy() 和 SDL_PutAudioStreamPlanarData() 函數,以更有效率地處理音訊串流。
  • 新增對透過 USB 連接的 Nintendo Switch 2 遊戲手把的支援。擴展了對 8BitDo、FlyDigi 和 Hand Held Legend SInput 手柄的支援。
  • 為了提高使用 Emscripten 編譯器建構的 WebAssambaly 應用程式的效能,新增了 SDL_SetWindowFillDocument() 函數,並實作了 SDL_WINDOW_FILL_DOCUMENT、SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRINGING 和 SOW_PINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRINGING 和 SOW_ARD_RIPT-INDy_ARD_EINDLINDy_ED.D.D.參數。
  • 在平台上 Linux 在使用 KMSDRM 時,實現了對原子操作的支持,可透過 SDL_HINT_KMSDRM_ATOMIC 屬性啟動。新增了 SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER 參數,用於在基於 Wayland 的環境中查詢與螢幕關聯的 wl_output 輸出裝置。

來源: opennet.ru

為具有 DDoS 保護、VPS VDS 服務器的站點購買可靠的主機 🔥 購買具備 DDoS 防護的可靠網站寄存服務,包括 VPS 和 VDS 伺服器 | ProHoster