Prebieha uvoľnenie knižnice SDL 2.0.18 (Simple DirectMedia Layer), zameranej na zjednodušenie písania hier a multimediálnych aplikácií. Knižnica SDL poskytuje prostriedky ako hardvérové urýchlenie výstupu 2D a 3D grafiky, spracovanie vstupu, prehrávanie zvuku, výstup 3D cez OpenGL/OpenGL ES/Vulkan a množstvo ďalších sprievodných operácií. Knižnica je napísaná v jazyku C a distribuuje sa pod licenciou zlib. Pre využitie možností SDL v projektoch v rôznych programovacích jazykoch sú k dispozícii väzby. Kód knižnice sa šíri pod licenciou Zlib.
V novom vydaní:
- Pre každú funkciu je poskytnutá informácia o verzii SDL, v ktorej sa daná funkcia objavila. Zabezpečená automatická synchronizácia dokumentácie v wiki s hlavičkovými súbormi.
- Pridané nové funkcie:
- SDL_RenderGeometry() a SDL_RenderGeometryRaw() na vykreslenie ľubovoľných tvarov pomocou 2D Render API.
- SDL_SetTextureUserData() a SDL_GetTextureUserData() na pripojenie údajov aplikácie k textúre.
- SDL_RenderWindowToLogical() a SDL_RenderLogicalToWindow() na prevod medzi oknovými a logickými súradnicami vykreslenia.
- SDL_RenderSetVSync() na zapnutie synchronizácie výstupu s snímkovým vyrovnávacím impulzom (vblank).
- SDL_PremultiplyAlpha() na aplikovanie transparentnosti na bloky pixelov vo formáte SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() a SDL_GetWindowMouseRect() na obmedzenie pohybu kurzora myši na danú oblasť okna.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() a SDL_JoystickHasRumbleTriggers() na kontrolu podpory herným ovládačom a joystickom efekty adaptívnej vibrácie (rumble).
- SDL_GetWindowICCProfile() na získanie farebného ICC profilu okna (pre kontrolu zmeny profilu bolo navrhnuté udalosti SDL_WINDOWEVENT_ICCPROF_CHANGED).
- Pridané nové znaky: SDL_HINT_APP_NAME na poskytnutie informácií o názve aplikácie a SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY na povolenie transparentnosti pre okná EGL.
- Pridaná nová udalosť okna SDL_WINDOWEVENT_DISPLAY_CHANGED, ktorá sa generuje pri zmene obrazovky, na ktorej sa zobrazuje okno.
- Poskytla sa možnosť určiť presné parametre pohybu kolieska myši pomocou polí "preciseX" a "preciseY" v parametroch udalosti.
- Funkcia SDL_WaitEvent() bola prepracovaná na zníženie záťaže CPU.
- API hidapi bolo presunuté do kategórie verejných a teraz je dostupné cez hlavičkový súbor SDL_hidapi.h.
- Na platforme Windows bolo vylepšené rozpoznávanie relatívneho pohybu myši v Windows Remote Desktop. Pridala sa značka SDL_HINT_IME_SHOW_UI na zobrazenie natívnych komponentov rozhrania (predvolene sú skryté). Pre UWP aplikácie sa namiesto XInput využíva WGI na vylepšenie podpory vstupných ovládačov.
- Pre platformu Linux boli implementované značky: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME na priradenie akcií zobrazovaných pri vypnutí šetriča obrazovky; SDL_HINT_LINUX_JOYSTICK_CLASSIC na výber, ktoré z zariadení (/dev/input/js* alebo /dev/input/event*) sa má použiť pre joystick; SDL_HINT_JOYSTICK_DEVICE na nastavenie zariadenia, ktoré sa má otvoriť pre joystick. Pridaná funkcia SDL_LinuxSetThreadPriorityAndPolicy() na správu priradenia priorít pre vlákna.
- Pre platformu Android bola implementovaná podpora výstupu a zachytávania zvuku pomocou API AAudio. Podpora ovládača Steam Controller je predvolene zakázaná (na povolenie sa navrhuje značka SDL_HINT_JOYSTICK_HIDAPI_STEAM).
Doplnenie: Jeden z autorov SDL Ryan Gordon (icculus) oznámil, že plánuje pridať do SDL jednoduché 3D API, podporujúce možnosti API moderných GPU (Vulkan, Direct3D 12, Metal). Financovať tento vývoj bude spoločnosť Epic Games v rámci programu Epic Megagrant. Žiadosť o grant Gordon podal v máji 2021 a pred dvoma týždňami dostal pozitívnu odpoveď.
Zdroj: opennet.ru
