SDL 3.4.0 (Simple DirectMedia Layer) je zdaj na voljo. Ta knjižnica je zasnovana za poenostavitev razvoja iger in multimedijskih aplikacij ter ponuja funkcije, kot so strojno pospešena 2D in 3D grafika, obdelava vhodnih podatkov, predvajanje zvoka in 3D upodabljanje prek OpenGL, OpenGL ES, Metal, Direct3D in Vulkan. Koda je napisana v jeziku C in licencirana pod licenco Zlib. Za uporabo SDL v projektih, napisanih v različnih programskih jezikih, so na voljo vezave.
SDL 3.4.0 je druga večja stabilna veja v seriji SDL 3.x – prva stabilna veja je bila napovedana kot 3.2.x, medtem ko je bila 3.3.x označena kot eksperimentalna. Glavne spremembe v SDL 3.4.0 vključujejo izboljšano prenosljivost med 3D GPU API-jem in 2D upodabljanjem API-jem, razširjeno podporo za prevajanje WebAssambly z uporabo prevajalnika Emscripten, izboljšano podporo za grafične tablice in digitalna pisala ter izvorno podporo za slikovni format PNG.
Nove funkcije v SDL 3.4.0 vključujejo:
- Dodana je bila vgrajena podpora za slike PNG, s funkcijami SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() in SDL_SavePNG_IO() za delo z njimi. Dodani sta bili funkciji SDL_LoadSurface() in SDL_LoadSurface_IO() za določanje formata (PNG ali BMP) in nalaganje slik kot površin.
- Dodana je funkcija SDL_RotateSurface() za ustvarjanje zasukane kopije površine.
- Dodana je bila funkcija SDL_CreateAnimatedCursor() za ustvarjanje barvnih animiranih kazalcev ter zastavica SDL_HINT_MOUSE_DPI_SCALE_CURSORS za samodejno spreminjanje velikosti kazalcev glede na stopnjo povečave zaslona.
- Dodane funkcije SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() in SDL_GetWindowProgressValue() za prikaz napredka operacije v ikoni opravilne vrstice aplikacije.
- Dodane lastnosti za uporabo GPU API-ja s starejšo strojno opremo.
- Dodani lastnosti SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER in SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEA za konfiguriranje in omogočanje funkcij Vulkan API pri ustvarjanju naprav GPU.
- Dodana funkcija SDL_GetGPUDeviceProperties() za poizvedbo o informacijah o grafičnem procesorju.
- Dodani funkciji SDL_CreateGPURenderer() in SDL_GetGPURendererDevice() za omogočanje 2D-upodabljanja grafičnemu procesorju, ter SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() in SDL_DestroyGPURenderState() za omogočanje senčil fragmentov za 2D-upodabljanje.
- Podpora za YUV teksture in HDR je zdaj na voljo za 2D-upodabljanje z GPU. Dodana je bila podpora za teksture s paletami s funkcijama SDL_GetTexturePalette() in SDL_SetTexturePalette(). Dodani sta funkciji SDL_GetPixelFormatFromGPUTextureFormat() in SDL_GetGPUTextureFormatFromPixelFormat() za pretvorbo formatov tekstur ter parametra SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER in SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER za ustvarjanje 2D-tekstur iz tekstur z GPU. Za konfiguracijo tekstur so dodane funkcije SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode() in SDL_SetRenderTextureAddressMode().
- Dodan parameter SDL_SCALEMODE_PIXELART za uporabo algoritma skaliranja, optimiziranega za slikovno umetnost.
- Implementirani so dogodki 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 in SDL_EVENT_AUDIO_DEVICE_ADDED, ki se sprožijo ob spreminjanju meja, prikazu/skrivanju zaslonske tipkovnice, zaslonskih potezah in dodajanju zvočne naprave.
- Dodani funkciji SDL_PutAudioStreamDataNoCopy() in SDL_PutAudioStreamPlanarData() za učinkovitejšo obdelavo zvočnih tokov.
- Dodana podpora za igralne krmilnike Nintendo Switch 2, povezane prek USB-ja. Razširjena podpora za krmilnike 8BitDo, FlyDigi in Hand Held Legend SInput.
- Za izboljšanje delovanja aplikacij WebAssambly, zgrajenih s prevajalnikom Emscripten, je bila dodana funkcija SDL_SetWindowFillDocument() in implementirani so bili parametri SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING in SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.
- Na platformi Linux Implementirana je podpora za atomske operacije pri uporabi KMSDRM, ki se aktivira z lastnostjo SDL_HINT_KMSDRM_ATOMIC. Dodan je parameter SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER za poizvedbo o izhodni napravi wl_output, povezani z zaslonom v okoljih, ki temeljijo na Waylandu.
Vir: opennet.ru
