Π‘Π»Π΅Π΄ ΠΎΡΠ΅ΠΌ ΠΌΠ΅ΡΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΌΡΠ»ΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ - GTK 4.8.0. GTK 4 ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»Π΅Π½ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ API Π·Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π΅Π· ΡΡΡΠ°Ρ , ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ²Π°Ρ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠ΅ΡΡ ΠΌΠ΅ΡΠ΅ΡΠ° ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² API Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ GTK ΠΊΠ»ΠΎΠ½.
Π‘ΡΠ΅Π΄ Π½Π°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² GTK 4.8 ΡΠ°:
- ΠΡΠΎΠΌΠ΅Π½Π΅Π½ ΡΡΠΈΠ» Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΠ²ΡΡ (GtkColorChooser).
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° ΡΠΎΡΠΌΠ°ΡΠ° OpenType Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΡΠΈΡΡ (GtkFontChooser).
- CSS Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΡΡ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π» ΠΏΡΠ΅Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π», ΠΈ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠ°Π·ΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΠΊΠ²ΠΈΡΠ΅.
- ΠΠ°Π½Π½ΠΈΡΠ΅ Π·Π° Π΅ΠΌΠΎΡΠΈΠΊΠΎΠ½ΠΈ ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄ΠΎ Π½Π°Π±ΠΎΡ CLDR 40 (Unicode 14). ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ Π»ΠΎΠΊΠ°Π»ΠΈ.
- ΠΠΊΠΎΠ½ΠΈΡΠ΅ ΡΠ° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² ΡΠ΅ΠΌΠ°ΡΠ° ΠΈ ΡΠ΅ΡΠ»ΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ Π΅ΡΠΈΠΊΠ΅ΡΠΈ Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π°.
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° GDK, ΠΊΠΎΡΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠ»ΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ GTK ΠΈ Π³ΡΠ°ΡΠΈΡΠ½Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π»Π° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΈΠΊΡΠ΅Π»Π½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ. ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π½Π° NVIDIA EGL ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ EGL_KHR_swap_buffers_with_damage Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ.
- ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° GSK (GTK Scene Kit), ΠΊΠΎΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΡΡΠ΅Π½ΠΈ ΡΡΠ΅Π· OpenGL ΠΈ Vulkan, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ (ΠΏΡΠΎΠ·ΠΎΡΡΠΈ Π·Π° ΠΈΠ·Π³Π»Π΅Π΄). ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π³Π»ΠΈΡΠΎΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ΅ΠΊΡΡΡΡΠΈ.
- ΠΠ° Wayland Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° "xdg-activation", ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΡΠ΅ ΡΠΎΠΊΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ²ΡΡΡ Π½ΠΎΡΡΠΈ ΠΎΡ ΠΏΡΡΠ²ΠΎ Π½ΠΈΠ²ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ xdg-activation, Π΅Π΄Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π° ΡΠΎΠΊΡΡΠ° ΠΊΡΠΌ Π΄ΡΡΠ³ΠΎ).
- Π£ΠΈΠ΄ΠΆΠ΅ΡΡΡ GtkTextView Π½Π°ΠΌΠ°Π»ΠΈ Π±ΡΠΎΡ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π²ΠΎΠ΄ΡΡ Π΄ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΏΡΠ΅Π½Π°ΡΠ΅ΡΡΠ°Π²Π°Π½Π΅, ΠΈ Π²Π½Π΅Π΄ΡΠΈ ΡΡΠ½ΠΊΡΠΈΡΡΠ° GetCharacterExtents Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΎΠ±Π»Π°ΡΡΡΠ° Ρ Π³Π»ΠΈΡ, ΠΊΠΎΠΉΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° Π·Π½Π°ΠΊ Π² ΡΠ΅ΠΊΡΡΠ° (ΡΡΠ½ΠΊΡΠΈΡ, ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½Π° ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Ρ ΠΎΡΠ° Ρ ΡΠ²ΡΠ΅ΠΆΠ΄Π°Π½ΠΈΡ).
- ΠΠ»Π°ΡΡΡ GtkViewport, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ΅Π²ΡΡΡΠ°Π½Π΅ Π² ΡΠΈΠ΄ΠΆΠ΅ΡΠΈ, ΠΈΠΌΠ° ΡΠ΅ΠΆΠΈΠΌ "ΠΏΡΠ΅Π²ΡΡΡΠ°Π½Π΅ Π΄ΠΎ ΡΠΎΠΊΡΡ", Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π² ΠΊΠΎΠΉΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ, Π·Π° Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈΠ·Π³Π»Π΅Π΄Π° Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° Π²Ρ ΠΎΠ΄Π΅Π½ ΡΠΎΠΊΡΡ.
- ΠΡΠ°ΡΠΈΡΠ½ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ» GtkSearchEntry, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° Π·ΠΎΠ½Π°ΡΠ° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΡΡΡΡΠ΅Π½Π΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π±Π°Π²ΡΠ½Π΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΡ ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠ³Π½Π°Π» Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ (GtkSearchEntry::search-changed).
- Π£ΠΈΠ΄ΠΆΠ΅ΡΡΡ GtkCheckButton ΠΈΠΌΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π΄Π° ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π° ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½ Π΄ΡΡΠ΅ΡΠ΅Π½ ΡΠΈΠ΄ΠΆΠ΅Ρ Ρ Π±ΡΡΠΎΠ½.
- Π‘Π²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ "content-fit" Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΊΡΠΌ Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ» GtkPicture, Π·Π° Π΄Π° Π°Π΄Π°ΠΏΡΠΈΡΠ° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΠΊΡΠΌ Π΄Π°Π΄Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΎΠ±Π»Π°ΡΡΡΠ°.
- ΠΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠ΅Π²ΡΡΡΠ°Π½Π΅ Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π° Π² ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈΡ ΠΌΠΎΠ΄ΡΠ» GtkColumnView.
- ΠΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½ΠΈΠ΅ΡΠΎ GtkTreeStore ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π΄ΡΡΠ²ΠΎ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
- ΠΠΎΠ² ΡΠΈΠ΄ΠΆΠ΅Ρ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΡΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΠΊΠ»Π°ΡΠ° 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 Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π½Π° ΡΠ½ΠΈΠΌΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΠΊΡΠ°Π½Π½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ Π·Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
- ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡ Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° gtk4-node-editor.
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΡΠ²ΠΎΠΉΡΡΠ²Π°ΡΠ° Π½Π° PangoAttrList ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°. ΠΠΎΠΏΡΡΠΊΠ° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΎΡΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ΅ΠΆΠΈΠΌ "GTK_DEBUG=invert-text-dir". Π Π΅ΠΆΠΈΠΌΡΡ "GDK_DEBUG=portals" Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° GTK_USE_PORTAL. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΡΠ΅Π°ΠΊΡΠΈΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π·Π²ΡΠΊ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ Π±Π΅ΠΊΠ΅Π½Π΄Π° Π½Π° ffmpeg.
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π·Π° ΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° JPEG ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΎ Π΄ΠΎ 300 MB.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru