Navoaka ny tranomboky SDL 2.0.18 (Simple DirectMedia Layer), natao hanamora ny fanoratana lalao sy fampiharana multimedia. Ny tranomboky SDL dia manome fitaovana toy ny famoahana sary 2D sy 3D manafaingana ny hardware, fanodinana fampidirana, famerenana feo, famoahana 3D amin'ny alΓ lan'ny OpenGL/OpenGL ES/Vulkan ary asa maro hafa mifandraika amin'izany. Ny tranomboky dia voasoratra amin'ny C ary zaraina eo ambanin'ny lisansa zlib. Ny fatorana dia omena hampiasa ny fahaiza-manao SDL amin'ny tetikasa amin'ny fiteny fandaharana isan-karazany. Ny kaody famakiam-boky dia zaraina eo ambanin'ny fahazoan-dΓ lana Zlib.
Ao amin'ny famoahana vaovao:
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π΅ΡΡΠΈΠΈ SDL, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ. ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² wiki Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
- SDL_RenderGeometry() ΠΈ SDL_RenderGeometryRaw() Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ ΡΠΈΠ³ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ 2D Render API.
- SDL_SetTextureUserData() ΠΈ SDL_GetTextureUserData() Π΄Π»Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΠΊΡΡΡΡΠ΅.
- SDL_RenderWindowToLogical() ΠΈ SDL_RenderLogicalToWindow() Π΄Π»Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΠΎΠΊΠ½Π° ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
- SDL_RenderSetVSync() Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° Ρ ΠΊΠ°Π΄ΡΠΎΠ²ΡΠΌ Π³Π°ΡΡΡΠΈΠΌ ΠΈΠΌΠΏΡΠ»ΡΡΠΎΠΌ (vblank).
- SDL_PremultiplyAlpha() Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ ΠΊ Π±Π»ΠΎΠΊΠ°ΠΌ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() ΠΈ SDL_GetWindowMouseRect() Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΎΠΊΠ½Π°.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() ΠΈ SDL_JoystickHasRumbleTriggers() Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ³ΡΠΎΠ²ΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ ΠΈ Π΄ΠΆΠΎΠΉΡΡΠΈΠΊΠΎΠΌ ΡΡΡΠ΅ΠΊΡΠ° Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΠΉ Π²ΠΈΠ±ΡΠ°ΡΠΈΠΈ (rumble)
- SDL_GetWindowICCProfile() Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠ³ΠΎ ICC-ΠΏΡΠΎΡΠΈΠ»Ρ ΠΎΠΊΠ½Π° (Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ SDL_WINDOWEVENT_ICCPROF_CHANGED).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ: SDL_HINT_APP_NAME Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΎΠΊΠΎΠ½ EGL.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΎΠΊΠ½Π° SDL_WINDOWEVENT_DISPLAY_CHANGED, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠΊΡΠ°Π½Π°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΡΠ½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠ»Π΅ΡΠ° ΠΌΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠΎΠ»Π΅ΠΉ Β«preciseXΒ» ΠΈ Β«preciseYΒ» Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΡΠΎΠ±ΡΡΠΈΡ.
- Π€ΡΠ½ΠΊΡΠΈΡ SDL_WaitEvent() ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π° Π΄Π»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° CPU.
- API hidapi ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠ΅ΡΠ΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» SDL_hidapi.h.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Windows ΡΠ»ΡΡΡΠ΅Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΌΡΡΠΈ Π² Windows Remote Desktop. ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡΠΈΠ·Π½Π°ΠΊ SDL_HINT_IME_SHOW_UI Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·Π° ΡΠΎΠ΄Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΊΡΡΠ²Π°ΡΡΡΡ). ΠΠ»Ρ UWP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ XInput Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ WGI Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Π²Π²ΠΎΠ΄Π°.
- ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Linux ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΈ: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME Π΄Π»Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Ρ ΡΠ°Π½ΠΈΡΠ΅Π»Ρ ΡΠΊΡΠ°Π½Π°; SDL_HINT_LINUX_JOYSTICK_CLASSIC Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· ΡΡΡΡΠΎΠΉΡΡΠ² (/dev/input/js* ΠΈΠ»ΠΈ /dev/input/event*) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π΄ΠΆΠΎΠΉΡΡΠΈΠΊΠ°; SDL_HINT_JOYSTICK_DEVICE Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ Π΄ΠΆΠΎΠΉΡΡΠΈΠΊΠ°. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ SDL_LinuxSetThreadPriorityAndPolicy() Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ².
- ΠΠ»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Android ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° ΠΈ Π·Π°Ρ Π²Π°ΡΠ° Π·Π²ΡΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ API AAudio. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Steam Controller (Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΏΡΠΈΠ·Π½Π°ΠΊ SDL_HINT_JOYSTICK_HIDAPI_STEAM).
ΠΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: ΠΠ΄ΠΈΠ½ ΠΈΠ· Π°Π²ΡΠΎΡΠΎΠ² SDL Π Π°ΠΉΠ°Π½ ΠΠΎΡΠ΄ΠΎΠ½ (icculus) ΡΠΎΠΎΠ±ΡΠΈΠ», ΡΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² SDL ΠΏΡΠΎΡΡΠΎΠΉ 3D API, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ API ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
GPU (Vulkan, Direct3D 12, Metal). Π€ΠΈΠ½Π°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Epic Games, Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Epic Megagrant. ΠΠ°ΡΠ²ΠΊΡ Π½Π° Π³ΡΠ°Π½Ρ ΠΠΎΡΠ΄ΠΎΠ½ ΠΏΠΎΠ΄Π°Π» Π² ΠΌΠ°Π΅ 2021, Π° Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ.
Source: opennet.ru