ΠΠΎΡΠ»Π΅ ΡΠ΅ΠΌΠΈ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ»ΠΊΠΈΡΠ° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ — GTK 4.14.0. GTK 4 ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΉ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π»Π΅Ρ API, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ ΠΎΠΏΠ°ΡΠ°ΡΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠ΅ ΠΏΠΎΠ»Π³ΠΎΠ΄Π° ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π΅Π»ΡΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ API Π² ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅ GTK.
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π²Π΅ΡΠΊΡ 4.90, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ Π²ΡΠΏΡΡΠΊΠ° GTK5. Π Π²Π΅ΡΠΊΡ GTK5 Π±ΡΠ΄ΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠ°ΡΡΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ API, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ Π² ΡΠ°Π·ΡΡΠ΄ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΡΠ°ΡΡΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ Π² Π²Π΅ΡΠΊΠ΅ GTK5 ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° X11 ΠΈ ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland.
Π‘ΡΠ΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΉ Π² GTK 4.14:
- Π ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π²ΠΈΠΆΠΊΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ «ngl» ΠΈ «vulkan», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ API OpenGL (GL 3.3+ ΠΈ GLES 3.0+) ΠΈ Vulkan. ΠΠ±Π° Π΄Π²ΠΈΠΆΠΊΠ° Π±Π°Π·ΠΈΡΡΡΡΡΡ Π½Π° API Vulkan, Π½ΠΎ Π² Π΄Π²ΠΈΠΆΠΊΠ΅ «ngl» Π΄Π»Ρ OpenGL ΡΠΎΠ·Π΄Π°Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ²Π΅ΡΡ
Vulkan Ρ ΡΡΡΡΠΎΠΌ ΠΎΡΠ»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ OpenGL ΠΈ Vulkan. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΎΠ±ΠΎΠΈΡ
Π΄Π²ΠΈΠΆΠΊΠ°Ρ
ΠΎΠ±ΡΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π³ΡΠ°ΡΠ° ΡΡΠ΅Π½Ρ (scene graph), ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΉ, ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΡΡ ΠΈ Π³Π»ΠΈΡΠΎΠ². Π£Π½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ»Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΠΎΠ±ΠΎΠΈΡ
Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΠΈ ΠΈΡ
ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°ΡΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ° «gl», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠ·Π»ΠΎΠ² ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° (rendernode) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ Π·Π°ΠΊΠ°Π΄ΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π΅ (offscreen), Π² Π½ΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠΊΠ°Ρ Π²ΠΌΠ΅ΡΡΠΎ Π·Π°ΠΊΠ°Π΄ΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΡΠ΅ΠΉΠ΄Π΅Ρ (ubershader), ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΡΡΠΈΠΉ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π±ΡΡΠ΅ΡΠ°. ΠΠ· ΠΎΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π½ΠΎΠ²ΡΡ Π΄Π²ΠΈΠΆΠΊΠΎΠ² ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΠΎΠ² (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΈ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΡΡΠΎΠ²), ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΡ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠ² (ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅) ΠΈ Π΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΡΠ½ Π½ΠΎΠ²ΡΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ «ngl», Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vulkan. ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan 1.3.
- Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ GSK (GTK Scene Kit), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠ΅Π½ ΡΠ΅ΡΠ΅Π· OpenGL ΠΈ Vulkan, Π²Π½Π΅ΡΠ΅Π½Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΡΠΈΡΡΠΎΠ², Ρ ΠΈΠ½ΡΠΈΠ½Π³ΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΡΠ΅Π»ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠ°ΡΡΡΠ°Π±Π° ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΠ°. ΠΡΠΈ Ρ ΠΈΠ½ΡΠΈΠ½Π³Π΅ (ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΡΠ° Π³Π»ΠΈΡΠ° ΠΏΡΠΈ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠΊΠΎΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½Π°Ρ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΡΠ±ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π»ΠΈΡΠΎΠ². ΠΠΎΠ²ΡΡΠ΅Π½ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠΈΡΡΠΎΠ² ΠΏΡΠΈ Π½Π΅ΡΠ΅Π»ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ ΠΌΠ°ΡΡΡΠ°Π±Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 125%). Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΊΡΡΠ΅ΠΉ Π΄Π»Ρ Π³Π»ΠΈΡΠΎΠ² ΠΈ ΡΠ΅ΠΊΡΡΡΡ. ΠΠΎΠ²ΡΡΠ΅Π½Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π³Π»ΠΈΡΠΎΠ².
- Π ΡΠ°ΠΌΠΊΠ°Ρ
ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΡ
ΠΎΠ΄Ρ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Cairo Π² ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ GPU Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° «ΠΏΡΡΠ΅ΠΉ» (Path) Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΈΠ³ΡΡ ΠΈ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π»ΠΈΠ½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΡΠ±ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΈ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΡΡ
ΠΊΡΠΈΠ²ΡΡ
ΠΠ΅Π·ΡΠ΅. ΠΠ»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΡΠ΅ΠΉ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΠ±ΡΠ΅ΠΊΡ GskPath, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π»ΠΈΠ½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΊΡΠΈΠ²ΡΡ
, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ GskPathBuilder Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΠΈΠ²ΡΡ
, GskPathPoint Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΡΠΊΠΈ Π½Π° ΡΠΈΠ³ΡΡΠ΅ ΠΈ GskPathMeasure Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ, ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠ½ΡΡΡΠ°.
- Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ GDK, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ ΠΌΠ΅ΠΆΠ΄Ρ GTK ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΡΠ°ΡΡΠΈΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° DMA-BUF, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΡΡΠ΅ΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ°, Π°Π΄ΡΠ΅ΡΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠ°, ΡΡΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡ
ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠ΄ΡΠ° ΡΠ΅ΡΠ΅Π· Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ GTK DMA-BUF ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠ½Π³Π° ΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²ΠΈΠ΄Π΅ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΈΠ΄Π΅ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π² dmabuf, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΎ ΠΊ ΠΏΠΎΠ²Π΅ΡΡ
Π½ΠΎΡΡΠΈ Wayland ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Π΄Π»Ρ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
).
ΠΠ»Ρ ΠΏΡΡΠΌΠΎΠΉ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π΅ΠΎ, ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΎΠΌΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ (ΠΌΠΈΠ½ΡΡ ΡΠ΅Π½Π΄Π΅Ρ GSK) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²ΠΈΠ΄ΠΆΠ΅Ρ GtkGraphicsOffload, Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π΄Π»Ρ ΠΏΡΡΠΌΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ»Π°ΡΡ GdkDmabufTextureBuilder, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΡ GdkTexture ΠΈΠ· dmabuf. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° Π΄Π»Ρ dmabuf ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ pipewire, video4linux ΠΈΠ»ΠΈ gstreamer. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠΎΡΠΌΠ°ΡΡ dmabuf NV16, NV61, NV24, NV42 ΠΈ YUV.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ»Π°ΡΡ GtkPrintDialog, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΠΏΠ΅ΡΠ°ΡΡ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΠΉ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ API Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠΎ GtkPrintOperation.
- Π Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅ GtkEmojiChooser ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Π΄Π°Π½Π½ΡΠ΅ Emoji ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ Ρ ΡΡΡΡΠΎΠΌ ΡΠ°Π·Π½ΡΡ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ.
- Π Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅ GtkEntry ΡΠ»ΡΡΡΠ΅Π½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΠ½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ undo).
- Π Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅ GtkFileChooser ΡΡΠΊΠΎΡΠ΅Π½ΠΎ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ².
- ΠΠ»Π°ΡΡ GtkShortcutsWindow, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ ΠΏΠΎ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ½ΡΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠΌ ΠΈ ΡΠΊΡΠ°Π½Π½ΡΠΌ ΠΆΠ΅ΡΡΠ°ΠΌ, Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΊΡΠ°Π½ΠΎΠ².
- Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (GTK inspector) ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± OpenGL, ΠΏΠΎΠ΄ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡΡ ΠΈ FPS.
- Π ΡΡΠΈΠ»ΠΈΡΡ gtk4-rendernode-tool Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° «compare».
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½ΠΎΠ²Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° gtk4-path-tool Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΡΡΠΌΠΈ.
- Π ΡΡΠΈΠ»ΠΈΡΠ΅ gtk4-node-editor Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π²ΡΠΎΠ·Π°ΠΏΠΈΡΠΈ.
- Π£ΡΡΡΠ°Π½Π΅Π½ΠΎ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΠ²Π»ΡΠ²ΡΠ΅Π΅ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Wayland Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ Π½Π΅ Π½Π° Π±Π°Π·Π΅ GNOME Shell.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π»ΡΠ΄Π΅ΠΉ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΊΠ°Π·ΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°, ΡΠ°Π±ΠΎΡΠΎΠΉ WebKitGTK ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ. Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ARIA. ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ GtkAccessibleText Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ accessibility-Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π² ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°Ρ . Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ GtkText Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° AT-SPI Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠΊΡΠ°Π½Π½ΡΠΌΠΈ ΡΠΈΠ΄Π΅ΡΠ°ΠΌΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Ρ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ GPU, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ API WGL Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Windows.
- Π‘ΠΎΠΊΡΠ°ΡΠ΅Π½ΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ΅ΠΌ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π΅ CSS.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru