Π‘ΠΎΡΡΠΎΡΠ»ΡΡ ΡΠ΅Π»ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ SDL 2.0.18 (Simple DirectMedia Layer), Π½Π°ΡΠ΅Π»Π΅Π½Π½ΠΎΠΉ Π½Π° ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΠ³Ρ ΠΈ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° SDL ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΊΠ°ΠΊ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ-ΡΡΠΊΠΎΡΠ΅Π½Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ 2D- ΠΈ 3D-Π³ΡΠ°ΡΠΈΠΊΠΈ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π²Π²ΠΎΠ΄Π°, Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π²ΡΠΊΠ°, Π²ΡΠ²ΠΎΠ΄ 3D ΡΠ΅ΡΠ΅Π· OpenGL/OpenGL ES/Vulkan ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ½ΡΡ ΡΠΎΠΏΡΡΡΡΠ²ΡΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ zlib. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ SDL Π² ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ. ΠΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Zlib.
Π Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅:
- ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π΅ΡΡΠΈΠΈ 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, Π° Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru