ΠΠ΅ΡΠ΅ ΠΏΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° SDL 2.0.22 (Simple DirectMedia Layer), Π½Π°ΡΠΎΡΠ΅Π½Π° ΠΊΡΠΌ ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ³ΡΠΈ ΠΈ ΠΌΡΠ»ΡΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° SDL ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΊΠ°ΡΠΎ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ 2D ΠΈ 3D Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΈΠ·Ρ ΠΎΠ΄, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π²Ρ ΠΎΠ΄Π°, Π°ΡΠ΄ΠΈΠΎ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅, 3D ΠΈΠ·Ρ ΠΎΠ΄ ΡΡΠ΅Π· OpenGL/OpenGL ES/Vulkan ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· Zlib. ΠΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° SDL Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΡΠ° ΠΎΡΠΈΠ³ΡΡΠ΅Π½ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ:
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π±Π΅ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π² ΡΡΠ΅Π΄ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Wayland ΠΈ X11, Π½ΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Wayland Π² ΠΈΠ³ΡΠΈΡΠ΅ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ Π½Π° NVIDIA, Π±Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ»ΠΎΠΆΠΈ ΠΏΡΠ΅Ρ ΠΎΠ΄ΡΡ (Π² ΡΡΠ΅Π΄ΠΈΡΠ΅ Π½Π° Wayland Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡΡ XWayland, ΠΈΠ·Ρ ΠΎΠ΄ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° X11). ΠΠ° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Wayland, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° βSDL_VIDEODRIVER=waylandβ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΈΠ»ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° βSDL_SetHint(SDL_HINT_VIDEODRIVER, βwayland,x11β)β ΠΊΡΠΌ ΠΊΠΎΠ΄Π°, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅ SDL_Init(). ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Ρ Wayland ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΠΎΠ½Π΅ libwayland-ΠΊΠ»ΠΈΠ΅Π½Ρ Π²Π΅ΡΡΠΈΡ 1.18.0.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ SDL_RenderGetWindow() Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠ°, ΡΠ²ΡΡΠ·Π°Π½ ΡΡΡ SDL Renderer.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΎΡΠ³ΡΠ»Π½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ (ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΡΠΎΡΠΊΠΈ, ΠΈΠ·ΡΠΈΡΡΠ²Π°Π½Π΅, ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅, ΡΠ»ΠΈΠ²Π°Π½Π΅ ΠΈ Ρ.Π½.), ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΠ° Π·Π°ΠΏΠ΅ΡΠ°Ρ: SDL_PointInFRect(), SDL_FRectEmpty(), SDL_FRectEquals(), SDL_FRectEqualsEpsilon (), SDL_HasIntersectionF(), SDL_IntersectFRect(), SDL_UnionFRect(), SDL_EncloseFPoints() ΠΈ SDL_IntersectFRectAndLine().
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ SDL_IsTextInputShown() Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π»ΠΈ ΠΎΠ±Π»Π°ΡΡΡΠ° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ SDL_ClearComposition() Π·Π° ΠΈΠ·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΡΡΠ° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡ, Π±Π΅Π· Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ (IME).
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ ΡΡΠ±ΠΈΡΠΈΠ΅ SDL_TEXTEDITING_EXT Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΠ±Π»Π°ΡΡΠΈ Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄ΡΠ»ΡΠ³ ΡΠ΅ΠΊΡΡ ΠΈ ΡΠ»Π°Π³ SDL_HINT_IME_SUPPORT_EXTENDED_TEXT Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ²Π° ΡΡΠ±ΠΈΡΠΈΠ΅.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ»Π°Π³ΡΡ SDL_HINT_MOUSE_RELATIVE_MODE_CENTER, Π·Π° Π΄Π° ΡΠ΅ Π΄Π°Π΄Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΌΠΈΡΠΊΠ°ΡΠ° ΡΠ°ΠΌΠΎ Π΄ΠΎ ΡΠ΅Π½ΡΡΡΠ° Π½Π° ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΠ°, Π²ΠΌΠ΅ΡΡΠΎ Π΄ΠΎ ΡΠ΅Π»ΠΈΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π½ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½.
- ΠΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ»Π°Π²ΡΠ½Π΅ Π½Π° ΠΌΠΈΡΠΊΠ°ΡΠ° ΠΏΡΠΈ Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅ Π½Π° Π±ΡΡΠΎΠ½ΠΈΡΠ΅ Π½Π° ΠΌΠΈΡΠΊΠ°ΡΠ°. ΠΠ° Π΄Π° Π³ΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠ»Π°Π³ΡΡ SDL_HINT_MOUSE_AUTO_CAPTURE.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΠ»Π°Π³ΠΎΠ²Π΅ SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL ΠΈ SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° OpenGL ΠΈΠ»ΠΈ Vulkan Π²ΡΠ² Π²ΡΠ½ΡΠ΅Π½ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ»Π°Π³ΡΡ SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE, Π·Π° Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° Π΄ΠΎΡΡΠ°Π²ΠΊΠ°ΡΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΠ΅ΡΠΎ SDL_QUIT, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅ Π·Π°ΡΠ²ΠΎΡΠ΅Π½.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ»Π°Π³ΡΡ SDL_HINT_JOYSTICK_ROG_CHAKRAM, Π·Π° Π΄Π° ΡΡΠ΅ΡΠΈΡΠ° ΠΌΠΈΡΠΊΠ°ΡΠ° ROG Chakram ΠΊΠ°ΡΠΎ Π΄ΠΆΠΎΠΉΡΡΠΈΠΊ.
- ΠΠ° Linux Π°ΡΡΠΈΠ±ΡΡΡΡ SDL_HINT_X11_WINDOW_TYPE Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½, Π·Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° _NET_WM_WINDOW_TYPE Π½Π° windows.
- ΠΠ° Linux Π±Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΡΠ»Π°Π³ΡΡ SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° libdecor Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈ ΡΡΡΠ²ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ xdg-decoration.
- ΠΠ° Android ΡΡΠ½ΠΊΡΠΈΡΡΠ° SDL_AndroidSendMessage() Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΡΠΌ SDL Java ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru