Uitgave van de multimedia bibliotheek SDL 3.4.0

De release van de SDL 3.4.0-bibliotheek (Simple DirectMedia Layer) is gepresenteerd. Deze bibliotheek is gericht op het vereenvoudigen van de ontwikkeling van games en multimedia-applicaties en biedt mogelijkheden zoals hardwareversnelde uitvoer van 2D- en 3D-grafieken, invoerafhandeling, geluidsweergave en 3D-uitvoer via OpenGL, OpenGL ES, Metal, Direct3D of Vulkan. De code is in de programmeertaal C geschreven en wordt verspreid onder de Zlib-licentie. Er zijn bindings beschikbaar om SDL in projecten in verschillende programmeertalen te gebruiken.

SDL 3.4.0 is de tweede belangrijke stabiele tak in de SDL 3.x-serie; de eerste stabiele tak was de 3.2.x-serie, terwijl de 3.3.x-tak als experimenteel werd gepositioneerd. De belangrijkste wijzigingen in SDL 3.4.0 zijn gerelateerd aan de verbetering van de compatibiliteit tussen de 3D GPU API en de API voor 2D-rendering, uitbreiding van de ondersteuning voor webassemblage bij het gebruik van de Emscripten-compiler, verbetering van de functionaliteit met grafische tablets en digitale pennen, en de introductie van ingebouwde ondersteuning voor PNG-afbeeldingsformaten.

Onder de nieuwe mogelijkheden in SDL 3.4.0:

  • Ingebouwde ondersteuning voor PNG-afbeeldingen is toegevoegd, met functies zoals SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() en SDL_SavePNG_IO(). Om het formaat (PNG of BMP) te bepalen en afbeeldingen als oppervlakken te laden, zijn de functies SDL_LoadSurface() en SDL_LoadSurface_IO() toegevoegd.
  • De functie SDL_RotateSurface() is toegevoegd voor het maken van een gedraaide kopie van een oppervlak.
  • De functie SDL_CreateAnimatedCursor() is toegevoegd voor het maken van gekleurde geanimeerde cursors, evenals de indicator SDL_HINT_MOUSE_DPI_SCALE_CURSORS voor automatische schaling van cursors op basis van het schaalniveau van het scherm.
  • De functies SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() en SDL_GetWindowProgressValue() zijn toegevoegd om de voortgang van een bewerking weer te geven in het pictogram van de applicatie in de taakbalk.
  • Eigenschappen zijn toegevoegd voor het gebruik van GPU API met oudere hardware.
  • De eigenschap SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER en SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN zijn toegevoegd om de mogelijkheden van de Vulkan API in te stellen en in te schakelen bij het maken van GPU-apparaten.
  • De functie SDL_GetGPUDeviceProperties() is toegevoegd om informatie over de GPU op te vragen.
  • De functies SDL_CreateGPURenderer() en SDL_GetGPURendererDevice() zijn toegevoegd voor het gebruiken van de GPU bij 2D-rendering, evenals SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() en SDL_DestroyGPURenderState() voor het gebruik van fragment shaders bij 2D-rendering.
  • Bij 2D-rendering met de GPU is ondersteuning voor YUV-texturen en HDR geïmplementeerd. Ondersteuning voor texturen met paletten is toegevoegd, waarvoor de functies SDL_GetTexturePalette() en SDL_SetTexturePalette() zijn toegevoegd. Er zijn functies SDL_GetPixelFormatFromGPUTextureFormat() en SDL_GetGPUTextureFormatFromPixelFormat() toegevoegd voor het omzetten van textuurformaten, evenals de parameters SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER en SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER voor het creëren van 2D-texturen uit GPU-texturen. Voor het configureren van texturen zijn de functies SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode() en SDL_SetRenderTextureAddressMode() toegevoegd.
  • De parameter SDL_SCALEMODE_PIXELART is toegevoegd voor het gebruik van een algoritme voor opschaling dat is geoptimaliseerd voor pixelart.
  • De gebeurtenissen 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 en SDL_EVENT_AUDIO_DEVICE_ADDED zijn geïmplementeerd, die worden geactiveerd bij wijzigingen in de grenzen, het verschijnen/verbergen van het schermkeyboard, schermgebaren en het toevoegen van audioapparaten.
  • De functies SDL_PutAudioStreamDataNoCopy() en SDL_PutAudioStreamPlanarData() zijn toegevoegd voor een efficiëntere verwerking van audiostreams.
  • Ondersteuning voor Nintendo Switch 2-gamecontrollers die via USB zijn aangesloten is toegevoegd. De ondersteuning voor 8BitDo-, FlyDigi- en Hand Held Legend SInput-controllers is uitgebreid.
  • Om de werking van WebAssembly-applicaties die zijn opgebouwd met de Emscripten-compiler te verbeteren, is de functie SDL_SetWindowFillDocument() toegevoegd en zijn de parameters SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING en SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING geïmplementeerd.
  • Op het Linux-platform is ondersteuning voor atomische bewerkingen geïmplementeerd bij gebruik van KMSDRM, geactiveerd via de eigenschap SDL_HINT_KMSDRM_ATOMIC. De parameter SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER is toegevoegd voor het opvragen van het wl_output-uitvoerapparaat dat is geassocieerd met het scherm in omgevingen op basis van Wayland.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster