Vydání multimediální knihovny SDL 3.4.0

Byla představena vydání knihovny SDL 3.4.0 (Simple DirectMedia Layer). Knihovna je zaměřena na zjednodušení psaní her a multimediálních aplikací a poskytuje funkce jako hardwarově akcelerovaný výstup 2D a 3D grafiky, zpracování vstupu, přehrávání zvuku a výstup 3D přes OpenGL, OpenGL ES, Metal, Direct3D nebo Vulkan. Kód je napsán v jazyce C a je distribuován pod licencí Zlib. Jsou poskytovány obálky pro použití SDL v projektech v různých programovacích jazycích.

SDL 3.4.0 je druhou významnou stabilní větví série SDL 3.x – první stabilní větví byla vyhlášena série 3.2.x a větev 3.3.x byla označena jako experimentální. Hlavní změny v SDL 3.4.0 se týkají zlepšení přenositelnosti mezi API 3D GPU a API pro dvourozměrné vykreslování, rozšíření podpory sestavení do WebAssembly pomocí kompilátoru Emscripten, zlepšení práce s grafickými tablety a digitálními pery a přidání vestavěné podpory pro formát obrázků PNG.

Mezi nové možnosti v SDL 3.4.0:

  • Byla přidána vestavěná podpora pro obrázky ve formátu PNG, pro které byly navržené funkce SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() a SDL_SavePNG_IO(). Pro určení formátu (PNG nebo BMP) a načtení obrázků jako povrchů byly přidány funkce SDL_LoadSurface() a SDL_LoadSurface_IO().
  • Byla přidána funkce SDL_RotateSurface() pro vytvoření otočené kopie povrchu.
  • Byla přidána funkce SDL_CreateAnimatedCursor() pro vytváření barevných animovaných kurzorů, stejně jako příznak SDL_HINT_MOUSE_DPI_SCALE_CURSORS pro automatické škálování kurzorů v závislosti na úrovni měřítka obrazovky.
  • Byly přidány funkce SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() a SDL_GetWindowProgressValue() pro zobrazení průběhu operace v ikonce aplikace na panelu úloh.
  • Byly přidány vlastnosti pro použití GPU API se starším hardwarem.
  • Byly přidány vlastnosti SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER a SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN pro nastavení a využití možností API Vulkan při vytváření zařízení GPU.
  • Byla přidána funkce SDL_GetGPUDeviceProperties() pro dotazování informací o GPU.
  • Byly přidány funkce SDL_CreateGPURenderer() a SDL_GetGPURendererDevice() pro aktivaci GPU při 2D vykreslování, stejně jako SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() a SDL_DestroyGPURenderState() pro aktivaci fragmentových shaderů při 2D vykreslování.
  • Při 2D vykreslování pomocí GPU byla implementována podpora YUV textur a HDR. Byla přidána podpora textur s paletami, pro jejichž použití byly přidány funkce SDL_GetTexturePalette() a SDL_SetTexturePalette(). Přidány jsou funkce SDL_GetPixelFormatFromGPUTextureFormat() a SDL_GetGPUTextureFormatFromPixelFormat() pro převod formátů textur, jakož i parametry SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER a SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER pro vytváření 2D textur z GPU textur. Pro nastavení textur byly přidány funkce SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode() a SDL_SetRenderTextureAddressMode().
  • Byl přidán parametr SDL_SCALEMODE_PIXELART pro použití algoritmu škálování optimalizovaného pro pixelovou grafiku.
  • Byly implementovány události SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED, SDL_EVENT_SCREEN_KEYBOARD_SHOWN, SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE, SDL_EVENT_PINCH_END a SDL_EVENT_AUDIO_DEVICE_ADDED, které se spouštějí při změně hranic, zobrazení/skrytí dotykové klávesnice, dotykových gestech a přidání zvukového zařízení.
  • Byly přidány funkce SDL_PutAudioStreamDataNoCopy() a SDL_PutAudioStreamPlanarData() pro efektivnější zpracování zvukových toků.
  • Byla přidána podpora herních ovladačů Nintendo Switch 2 připojených přes USB. Byla rozšířena podpora ovladačů 8BitDo, FlyDigi a Hand Held Legend SInput.
  • Pro zlepšení výkonu WebAssembly aplikací sestavených pomocí kompilátoru Emscripten byla přidána funkce SDL_SetWindowFillDocument() a byly implementovány parametry SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING a SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.
  • Na platformě Linux byla implementována podpora atomických operací při použití KMSDRM, aktivovaných pomocí vlastnosti SDL_HINT_KMSDRM_ATOMIC. Byl přidán parametr SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER pro dotaz na výstupní zařízení wl_output spojené s obrazovkou v prostředích založených na Wayland.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster