Utgivningen av biblioteket SDL 3.4.0 (Simple DirectMedia Layer) har presenterats. Biblioteket syftar till att förenkla skapandet av spel och multimediaapplikationer och erbjuder funktioner som hÄrdvaruaccelererad rendering av 2D- och 3D-grafik, hantering av indata, ljuduppspelning och 3D-utmatning via OpenGL, OpenGL ES, Metal, Direct3D eller Vulkan. Koden Àr skriven i C och distribueras under Zlib-licensen. Det finns wrapper-funktioner för att anvÀnda SDL i projekt pÄ olika programmeringssprÄk.
SDL 3.4.0 Ă€r den andra betydande stabila versionen i serien SDL 3.x â den första stabila versionen var serie 3.2.x, medan version 3.3.x positionerades som experimentell. HuvudförĂ€ndringarna i SDL 3.4.0 handlar om förbĂ€ttrad bĂ€rbarhet mellan 3D GPU-API och API för 2D-rendering, utvidgad stöd för byggande i WebAssembly med Emscripten-kompilatorn, förbĂ€ttrad hantering av grafiska surfplattor och digitala pennor, samt inbyggt stöd för PNG-bildformatet.
Bland de nya funktionerna i SDL 3.4.0:
- Inbyggt stöd för bilder i PNG-format har lagts till, med funktioner som SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() och SDL_SavePNG_IO. För att bestÀmma formatet (PNG eller BMP) och ladda bilder som ytor har funktionerna SDL_LoadSurface() och SDL_LoadSurface_IO lagts till.
- Funktionen SDL_RotateSurface() har lagts till för att skapa en roterad kopia av en yta.
- Funktionen SDL_CreateAnimatedCursor() har lagts till för att skapa fÀrgade animerade markörer, samt flaggan SDL_HINT_MOUSE_DPI_SCALE_CURSORS för automatisk skalning av markörer i förhÄllande till skÀrmupplösningen.
- Funktionerna SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() och SDL_GetWindowProgressValue() har lagts till för att visa operationens framsteg i applikationsikonen pÄ aktivitetsfÀltet.
- Egenskaper för anvÀndning av GPU API med Àldre hÄrdvara har lagts till.
- Egenskapen SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER och SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOL har lagts till för att konfigurera och aktivera Vulkan API:s funktioner vid skapande av GPU-enheter.
- Funktionen SDL_GetGPUDeviceProperties() har lagts till för att begÀra information om GPU.
- Funktionerna SDL_CreateGPURenderer() och SDL_GetGPURendererDevice() har lagts till för att anvÀnda GPU för 2D-rendering, samt SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() och SDL_DestroyGPURenderState() för att aktivera fragmentshaders vid 2D-rendering.
- Vid 2D-rendering med hjÀlp av GPU har stöd för YUV-texturer och HDR implementerats. Stöd för palett-texturer har lagts till, med funktioner SDL_GetTexturePalette() och SDL_SetTexturePalette() för att arbeta med dem. Funktionerna SDL_GetPixelFormatFromGPUTextureFormat() och SDL_GetGPUTextureFormatFromPixelFormat() har lagts till för att konvertera texturformat, liksom parametrarna SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER och SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER för att skapa 2D-texturer frÄn GPU-texturer. Funktioner för att konfigurera texturer har lagts till: SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode(), SDL_SetRenderTextureAddressMode().
- Parametern SDL_SCALEMODE_PIXELART har lagts till för att anvÀnda en optimerad skalningsalgoritm för pixlad grafik.
- HÀndelserna 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 och SDL_EVENT_AUDIO_DEVICE_ADDED har implementerats, som triggas vid förÀndringar av grÀnser, visning/döljning av skÀrmtangentbord, skÀrmgester och tillÀgg av ljudenheter.
- Funktionerna SDL_PutAudioStreamDataNoCopy() och SDL_PutAudioStreamPlanarData() har lagts till för mer effektiv hantering av ljudströmmande data.
- Stöd för Nintendo Switch 2-spelkontroller, anslutna via USB, har lagts till. Stödet för kontroller frÄn 8BitDo, FlyDigi och Hand Held Legend SInput har utökats.
- För att förbÀttra prestanda för WebAssembly-appar som kompileras med Emscripten har funktionen SDL_SetWindowFillDocument() lagts till och parametrarna SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING och SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING har implementerats.
- PÄ Linux-plattformen har stöd för atomÀra operationer vid anvÀndning av KMSDRM implementerats, aktiverade genom egenskapen SDL_HINT_KMSDRM_ATOMIC. Parametern SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER har lagts till för att begÀra wl_output-utgÄngsenhet kopplad till skÀrmen i Wayland-baserade miljöer.
KĂ€lla: opennet.ru
