Π‘Π»Π΅Π΄ ΠΎΡΠ΅ΠΌ ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ β GTK 4.8.0. GTK 4 ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π»ΠΈ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ API Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π΅Π· ΡΡΡΠ°Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ²Π°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ° Π·Π°ΡΠ°Π΄ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² API-ΡΠΎ Π² Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° GTK.
Π‘ΡΠ΅Π΄ Π½Π°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² GTK 4.8:
- ΠΡΠΎΠΌΠ΅Π½Π΅Π½ Π΅ ΡΡΠΈΠ»ΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΠ²Π΅ΡΠΎΠ²Π΅ (GtkColorChooser).
- Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΡΠΈΡΡΠΎΠ²Π΅ (GtkFontChooser) Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ° OpenType.
- Π CSS Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»Ρ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π΅Π΄ΠΈΠ½ ΡΠΎΠ΄ΠΈΡΠ΅Π», ΠΈ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠΊΠ²ΠΈΡΠ΅.
- ΠΠ°Π½Π½ΠΈΡΠ΅ Emoji ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ Π΄ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° CLDR 40 (Unicode 14). ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ.
- Π ΡΠ΅ΠΌΠ°ΡΠ° Π½Π° ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ° ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ ΠΏΠΈΠΊΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ ΠΈ Π΅ ΠΏΠΎΠ²ΠΈΡΠ΅Π½Π° ΡΠ΅ΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈΡΠ΅ Π΅ΡΠΈΠΊΠ΅ΡΠΈ.
- Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° GDK, ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ GTK ΠΈ Π³ΡΠ°ΡΠΈΡΠ½Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ²ΠΈΡΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈ. Π ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ NVIDIA Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ EGL ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ EGL_KHR_swap_buffers_with_damage.
- Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° GSK (GTK Scene Kit), ΠΊΠΎΡΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΡΡΠ΅Π½ΠΈ ΡΡΠ΅Π· OpenGL ΠΈ Vulkan, Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ (viewport-ΠΎΠ²Π΅). ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π³Π»ΠΈΡΠΎΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅ΠΊΡΡΡΡΠΈ.
- ΠΠ° Wayland Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° βxdg-activationβ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠΊΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ xdg-activation Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈ ΡΠΎΠΊΡΡΠ° Π½Π° Π΄ΡΡΠ³ΠΎ).
- Π Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° GtkTextView Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ ΡΠΈΡΠ»ΠΎΡΠΎ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΠΈΡΠ΅, Π²ΠΎΠ΄Π΅ΡΠΈ Π΄ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΈ ΠΏΡΠ΅ΡΠΈΡΡΠ²Π°Π½ΠΈΡ, ΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° GetCharacterExtents Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΡΡΠ° Π½Π° Π³Π»ΠΈΡΠ°, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π² ΡΠ΅ΠΊΡΡΠ° (ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π΅ Π²Π°ΠΆΠ½Π° Π·Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Ρ ΠΎΡΠ° Ρ ΡΠ²ΡΠ΅ΠΆΠ΄Π°Π½ΠΈΡ).
- Π ΠΊΠ»Π°ΡΠ° GtkViewport, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π²ΡΡΡΠ°Π½Π΅ Π² Π²ΠΈΠ΄ΠΆΠ΅ΡΠΈΡΠ΅, Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ΠΆΠΈΠΌ βscroll-to-focusβ, ΠΏΡΠΈ ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ°, Π·Π° Π΄Π° Π·Π°Π΄ΡΡΠΆΠΈ Π² ΠΏΠΎΠ»Π΅Π·ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°, Π½Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ ΡΠΎΠΊΡΡΡΡ Π½Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅.
- Π ΡΠΈΠ΄ΠΆΠ΅ΡΠ° GtkSearchEntry, ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ ΠΎΠ±Π»Π°ΡΡΡΠ° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΡΡΠ΅Π½Π΅, ΠΈΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΠ΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠ³Π½Π°Π» Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ (GtkSearchEntry::search-changed).
- Π ΡΠΈΠ΄ΠΆΠ΅ΡΠ° GtkCheckButton Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ Π΄ΠΎΡΠ΅ΡΠ΅Π½ ΡΠΈΠ΄ΠΆΠ΅Ρ Ρ Π±ΡΡΠΎΠ½.
- Π ΡΠΈΠ΄ΠΆΠ΅ΡΠ° GtkPicture Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ βcontent-fitβ Π·Π° Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΠΊΡΠΌ Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΎΠ±Π»Π°ΡΡΡΠ°.
- Π ΡΠΈΠ΄ΠΆΠ΅ΡΠ° GtkColumnView Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΡΠΊΡΠΎΠ»ΠΈΠ½Π³Π°.
- Π ΡΠΈΠ΄ΠΆΠ΅ΡΠ° GtkTreeStore Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄ΡΡΠ²ΠΎΠ²ΠΈΠ΄Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ ui.
- Π ΠΊΠ»Π°Ρ GtkInscription, ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΎΠ±Π»Π°ΡΡ, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π½ΠΎΠ² ΡΠΈΠ΄ΠΆΠ΅Ρ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΡΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° GtkInscription.
- Π ΡΠΈΠ΄ΠΆΠ΅ΡΠ° GtkTreePopover Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΊΡΠΎΠ»ΠΈΠ½Π³.
- Π ΡΠΈΠ΄ΠΆΠ΅ΡΠ° GtkLabel Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π±ΡΠ»Π°ΡΠΈΠΈ ΠΈ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΡΠΈΠΊΠ΅ΡΠΈ ΡΡΠ΅Π· Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅ Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ ΠΊΡΠΌ Π΅ΡΠΈΠΊΠ΅ΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°ΡΠ°.
- Π ΡΠΈΠ΄ΠΆΠ΅ΡΠ° GtkListView Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° β::n-itemsβ ΠΈ β::item-typeβ.
- Π ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡ (GDK_SCROLL_UNIT_WHEEL, GDK_SCROLL_UNIT_SURFACE) Π½Π° ΡΠΊΡΠΎΠ»ΠΈΠ½Π³Π°.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° macOS Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΡΠ» Π΅ΠΊΡΠ°Π½ ΠΈ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° OpenGL. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΡΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ½ΠΈΡΠΎΡΠ½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ ΠΈ ΠΈΠ·Π±ΠΎΡΡΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Π·Π° Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΈΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΠ° ΡΠΈΡΡΠ²Π°Π½Π΅ ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ CALayer ΠΈ IOSurface. ΠΡΠΈΠ³ΡΡΠ΅Π½ Π΅ ΡΡΠ°ΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Windows Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈΡΠ΅ Π½Π° HiDPI Π΅ΠΊΡΠ°Π½ΠΈ, Π΄ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ²Π΅ΡΠΎΠ²Π΅, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ»Π΅Π»ΠΎ Π½Π° ΠΌΠΈΡΠΊΠ° Ρ Π²ΠΈΡΠΎΠΊΠ° ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΈ Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΡΡΠΏΠ°Π΄ΠΎΠ²Π΅.
- Π ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° gtk4-builder-tool Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° screenshot Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π½Π° ΡΠ½ΠΈΠΌΠΊΠ°, ΠΊΠΎΡΡΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ Π·Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°.
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ° Π½Π° ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° gtk4-node-editor.
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Π΄Π΅Π±ΡΠ³Π΅ΡΠ°. Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΠΈ Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° PangoAttrList ΠΏΡΠΈ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡ. Π Π°Π·ΡΠ΅ΡΠ΅Π½Π° Π΅ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡ Π½Π° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠΈΡΠ΅. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅ΠΆΠΈΠΌ βGTK_DEBUG=invert-text-dirβ. ΠΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° GTK_USE_PORTAL Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ βGDK_DEBUG=portalsβ. ΠΠΎΠ²ΠΈΡΠ΅Π½Π° Π΅ ΠΎΡΠ·ΠΈΠ²ΡΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ.
- Π Π±Π΅ΠΊΠ΅Π½Π΄Π° ffmpeg Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π·Π²ΡΠΊ.
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² JPEG Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ Π΄ΠΎ 300 ΠΠ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
