Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ ΡΠ΅Π΄Π΅ΠΌ ΠΌΠ΅ΡΠ΅ΡΠ°, Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π²Π΅ΡΡΠΈΡ 4.14.0 Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈΡ ΡΡΠ»ΠΊΠΈΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ β GTK. 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. Π’Π°ΠΊΡΠ² ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΠ±ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΡΠ°ΡΠ° Π½Π° ΡΡΠ΅Π½Π°ΡΠ°, ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΡΡΠΈ ΠΈ Π³Π»ΠΈΡΠΎΠ²Π΅. Π£Π½ΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ»Π΅ΡΠ½ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°ΡΠ° Π±Π°Π·Π° Π½Π° Π΄Π²Π°ΡΠ° Π΅Π½Π΄ΠΆΠΈΠ½Π° ΠΈ ΡΡΡ
Π½ΠΎΡΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π² ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ°ΡΠΈΡ Π΅Π½Π΄ΠΆΠΈΠ½ β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 Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡ Π² Π²ΡΠ½ΡΠ½ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΈ. Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° GtkText Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° AT-SPI ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π΅ΠΊΡΠ°Π½Π½ΠΈ ΡΠ΅ΡΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ΅Π½Π΄Π΅ΡΠΈΡΠ°Π½Π΅ Ρ GPU, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ API WGL Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Windows.
- ΠΠ°ΠΌΠ°Π»Π΅Π½ΠΎ Π΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΏΡΠΈ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅ΠΌΠΈ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° CSS.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru

