Esitletud on SDL 3.4.0 (Simple DirectMedia Layer) teek. See teek on suunatud mängude ja multimeedia rakenduste arendamise lihtsustamisele ning pakub võimalusi nagu riistvaraliselt kiirendatud 2D- ja 3D-graafika väljund, sisendi töötlemine, heli esitus ja 3D-väljund läbi OpenGL, OpenGL ES, Metal, Direct3D või Vulkan. Kood on kirjutatud C keeles ja jagatakse Zlib litsentsi alusel. Pakutakse SID-e SDL kasutamiseks erinevates programmeerimiskeeltes.
SDL 3.4.0 on teine suur stabiilne haru SDL 3.x seerias — esimene stabiilne haru kuulutati välja seeria 3.2.x, samas kui haru 3.3.x positsioneeriti katseharuna. Peamised muudatused SDL 3.4.0-s on seotud 3D GPU API ja 2D-renderdamise API vaheline ühilduvuse parandamisega, WebAssembly toetamist läbi Emscripteni kompilaatori, graafikaplaatide ja digitaalse pliiatsiga töötamise täiustamise ning PNG piltide formaadi sisemise toe lisamisega.
SDL 3.4.0 uusi võimalusi on:
- Lisatud tugi PNG-formaadis piltide jaoks, mille töötlemiseks on saadaval funktsioonid SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() ja SDL_SavePNG_IO(). Piltide formati (PNG või BMP) määramiseks ja nende laadimiseks pindadena on lisatud funktsioonid SDL_LoadSurface() ja SDL_LoadSurface_IO().
- Lisatud funktsioon SDL_RotateSurface(), et luua keeratud koopia pinnast.
- Lisatud funktsioon SDL_CreateAnimatedCursor(), et luua värvilisi animatsioonikursoreid, samuti parameeter SDL_HINT_MOUSE_DPI_SCALE_CURSORS kursore kõverdamiseks ekraani suumi tasemega.
- Lisatud funktsioonid SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() ja SDL_GetWindowProgressValue(), et kuvada operatsiooni edenemist rakenduse ikoonis tegumiribal.
- Lisatud omadused GPU API kasutamiseks vana riistvara puhul.
- Lisatud omadus SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER ja SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEA Vulkan API võimaluste seadistamiseks ja kasutamiseks GPU seadmete loomisel.
- Lisatud funktsioon SDL_GetGPUDeviceProperties(), et küsida teavet GPU kohta.
- Lisatud funktsioonid SDL_CreateGPURenderer() ja SDL_GetGPURendererDevice() GPU kasutamiseks 2D-joonistamisel, samuti SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() ja SDL_DestroyGPURenderState() fraktsionaalsete shaderite kasutamiseks 2D-joonistamisel.
- 2D-joonistamisel GPU abil on toetatud YUV tekstuure ja HDR. Lisatud on ka palettidega tekstuuride tugi, mille jaoks on lisatud funktsioonid SDL_GetTexturePalette() ja SDL_SetTexturePalette(). Funktsioonid SDL_GetPixelFormatFromGPUTextureFormat() ja SDL_GetGPUTextureFormatFromPixelFormat() on lisatud tekstuuriformaatide konverteerimiseks ning parameetrid SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER ja SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER GPU-tekstuuride põhjal 2D-tekstuuride loomiseks. Tekstuuride seadistamiseks on lisatud funktsioonid SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode(), SDL_SetRenderTextureAddressMode().
- Lisatud parameeter SDL_SCALEMODE_PIXELART pixel-art graafika jaoks optimeeritud suurendamisalgoritmi kasutamiseks.
- Tehtud on sündmused 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 ja SDL_EVENT_AUDIO_DEVICE_ADDED, mis aktiveeruvad piiride muutumisel, ekraanivõtme ava- ja peitmisel, ekraanigestide puhul ja heliseadmestiku lisamisel.
- Lisatud funktsioonid SDL_PutAudioStreamDataNoCopy() ja SDL_PutAudioStreamPlanarData() helivoodude tõhusamaks töötlemiseks.
- Lisatud tugi Nintendo Switch 2 mängukontrollereile, mis on ühendatud USB kaudu. Laiendatud 8BitDo, FlyDigi ja Hand Held Legend SInput kontrollerite toetust.
- WebAssembly rakenduste töö parandamiseks, mis on koostatud Emscripten koosolekul, on lisatud funktsioon SDL_SetWindowFillDocument() ja rakendatud parameetrid SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING ja SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.
- Linuxi platvormil on KMSDRM-i kasutamisel rakendatud atomaarsete operatsioonide tugi, aktiveerituna omaduse SDL_HINT_KMSDRM_ATOMIC kaudu. Lisatud parameeter SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER, et küsida ekraaniga seotud wl_output väljundseadet Waylandi baasil keskkondades.
Allikas: opennet.ru
