ДоступСн графичСский Ρ‚ΡƒΠ»ΠΊΠΈΡ‚ GTK 4.14 с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π²ΠΈΠΆΠΊΠ°ΠΌΠΈ для OpenGL ΠΈ Vulkan

ПослС сСми мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΡƒΠ»ΠΊΠΈΡ‚Π° для создания графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ — 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 для выполнСния ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π΄Π»ΠΈΠ½Π° ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°.
    ДоступСн графичСский Ρ‚ΡƒΠ»ΠΊΠΈΡ‚ GTK 4.14 с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π²ΠΈΠΆΠΊΠ°ΠΌΠΈ для OpenGL ΠΈ Vulkan
  • Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ 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