ДоступСн графичСский Ρ‚ΡƒΠ»ΠΊΠΈΡ‚ GTK 4.16

ПослС ΡˆΠ΅ΡΡ‚ΠΈ мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΡƒΠ»ΠΊΠΈΡ‚Π° для создания графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ — GTK 4.16.0. GTK 4 развиваСтся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пытаСтся ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ опасаясь, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ ΠΏΠΎΠ»Π³ΠΎΠ΄Π° придётся ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния ΠΈΠ·-Π·Π° измСнСния API Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅ GTK.

Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ Π² GTK 4.16:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° настройка gtk-font-rendering, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Π³ΠΈΠ±ΠΊΠΈΠ΅ высокоуровнСвыС возмоТности для управлСния отрисовкой ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ². Для использования Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… настроСк ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ² слСдуСт Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ gtk-font-rendering Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ‘manual’.
  • Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ GSK (GTK Scene Kit), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ возмоТности отрисовки графичСских сцСн Ρ‡Π΅Ρ€Π΅Π· OpenGL ΠΈ Vulkan, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для отрисовки Π² окруТСниях Π½Π° Π±Π°Π·Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Wayland задСйствован Π΄Π²ΠΈΠΆΠΎΠΊ отрисовки «vulkan», Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ графичСский API Vulkan. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π²ΠΈΠΆΠΎΠΊ отрисовки «ngl», ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ OpenGL, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ²Π΅Ρ€Ρ… API Vulkan. Для измСнСния Π΄Π²ΠΈΠΆΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния «GSK_RENDERER». Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π²ΠΈΠΆΠΊΠΈ «vulkan» ΠΈ «ngl» ΠΏΠΎ ΠΈΠ½ΠΎΠΌΡƒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ с графичСскими Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ, для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ послСдний Ρ€Π΅Π»ΠΈΠ· Mesa 24.2.
  • Π‘Ρ€Π΅Π΄ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ GSK:
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ «occlusion culling», ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ отрисовку ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², скрытых Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈΠ»ΠΈ находящимися Π²Π½Π΅ поля зрСния.
    • Π’ процСссС ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ½Π³Π° обСспСчСн ΡƒΡ‡Ρ‘Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΌ пространствС.
    • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π³Π»ΠΈΡ„ΠΎΠ² ΠΈ тСкстур.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»ΠΈΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ налоТСния (tiling) Π±ΠΎΠ»ΡŒΡˆΠΈΡ… тСкстур для создания бСсшовной повСрхности ΠΏΡƒΡ‚Ρ‘ΠΌ повторСния тСкстуры.
    • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° отрисовка Ρ‚Π΅Π½Π΅ΠΉ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ привлСчСния срСдств Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ускорСния для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… тСкстур, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΠ²Ρ‘Ρ€Π½ΡƒΡ‚ΠΎΠ³ΠΎ содСрТимого Π½Π° экран.
    • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ использованиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ускорСния Π½Π° систСмах с ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ kwin.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° отладочная опция «GDK_DEBUG=linear» для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠ° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ½Π³Π°. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³Π° ΠΏΡ€ΠΈ использовании ΠΎΠΏΡ†ΠΈΠΉ «GDK_DEBUG=offload» ΠΈ «GSK_DEBUG=renderer».
  • ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² окруТСниях Π½Π° Π±Π°Π·Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Wayland ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° kwin Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° (color-management) для ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Ρ‘Π½Π½Ρ‹Ρ… Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ² использовано Wayland-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ xdg-dialog. ΠŸΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ½Π³Π΅ задСйствована ΡˆΠ΅ΡΡ‚Π°Ρ вСрсия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° wl_compositor. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ использованиС dmabuf Π² процСссС Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ускорСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкстур для OpenGL.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ GDK, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ прослойку ΠΌΠ΅ΠΆΠ΄Ρƒ GTK ΠΈ графичСской подсистСмой:
    • БущСствСнно Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹ΠΌΠΈ пространствами. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… пространств srgb, srgb-linear, rec2100-pq ΠΈ rec2100-linear, ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… пространств для HDR. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ GdkColorState, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для прСобразования ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ пространства Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… пространствах Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Gdk.CicpParams. Π’ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ GdkTexture, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ создания, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ прСобразования тСкстур Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… пространств.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ API для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с курсором, основанный Π½Π° callback-Π²Ρ‹Π·ΠΎΠ²Π°Ρ….
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ MIP-тСкстурирования (MipMap, созданиС ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½Π½Ρ‹Ρ… вСрсий тСкстур, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹) силами CPU.
    • Для прСобразования Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ MIP-тСкстурирования задСйствован ΠΏΡƒΠ» ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² (thread pool) .
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния XDG_ACTIVATION_TOKEN с Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠΌ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° xdg-activation-v1, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ фокус Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ класс GdkMemoryTextureBuilder, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с тСкстурами (GdkTexture) ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΏΠΎ созданию Ρ‚Π΅ΠΌ оформлСния Π½Π° Π±Π°Π·Π΅ CSS. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… свойств. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ CSS-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ color(), oklab(), color-mix(), Π° Ρ‚Π°ΠΊΠΆΠ΅ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ опрСдСлСния Ρ†Π²Π΅Ρ‚ΠΎΠ² (измСнСния Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Ρ… Ρ†Π²Π΅Ρ‚ΠΎΠ² функциями), Π° Ρ‚Π°ΠΊΠΆΠ΅ задания уровня прозрачности Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ…. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ, Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ, тСнями ΠΈ тСкстом обСспСчСн ΡƒΡ‡Ρ‘Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… пространствах.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ rendernode-tool Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «extract» для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ URL ΠΈ «image» для манипуляции тСкстурами. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PDF.
  • Π’ интСрфСйс gtk4-node-editor Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опСрация ‘Paste as node’.
  • Π’ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² GtkFileChooserWidget Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ctrl-Shift-N для создания ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².
  • Π’ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ создания Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΊΠΎΠ½ GtkPopover ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.
  • Π’ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ GtkGraphicsOffload, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для прямой ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π΅ΠΎ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ минуя Ρ€Π΅Π½Π΄Π΅Ρ€ GSK, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ свойство «black-background» для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‡Ρ‘Ρ€Π½ΠΎΠ³ΠΎ Ρ„ΠΎΠ½Π°.
    ДоступСн графичСский Ρ‚ΡƒΠ»ΠΊΠΈΡ‚ GTK 4.16
  • Π’ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ GtkGLArea, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для Π²Ρ‹Π²ΠΎΠ΄Π° с использованиСм OpenGL, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ формирования тСкстур Π² dmabuf, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ GtkGraphicsOffload для прямого Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΉ сСрвСр. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ взаимодСйствия с ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½Ρ‹ΠΌ сСрвСром.
    ДоступСн графичСский Ρ‚ΡƒΠ»ΠΊΠΈΡ‚ GTK 4.16
  • Π’ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ GtkTextView Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π° тСкста с Ρ‚Π΅Π½ΡŒΡŽ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ GtkTextBufferCommitNotify.
  • Π’ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ GtkCheckButton Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠ³ΠΎ опрСдСлСния стиля ΠΊΠ½ΠΎΠΏΠΎΠΊ.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π’ интСрфСйс инспСктирования Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° информация ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²Ρ‹Ρ… пространствах, Π° Ρ‚Π°ΠΊΠΆΠ΅ свСдСния ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ окруТСния GDK_DEBUG Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° GDK_DEBUG ΠΈ GDK_DISABLE. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π΅ΠΆΠΈΠΌΡ‹ GDK_DISABLE=color-mgmt ΠΈ GDK_DISABLE=offload. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ GTK_DEBUG=css для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ использовании ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… возмоТностСй CSS. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Super-r для записи Π»ΠΎΠ³Π° событий ΠΈ Super-c для создания ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°.
  • ΠŸΠΎΠ΄Π½ΡΡ‚Ρ‹ трСбования ΠΊ зависимостям ΠΈ сборочному ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ. Для сборки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ компилятор с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ C11 ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ вСрсии gstreamer 1.24, pango 1.52 ΠΈ cairo 1.18. ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… сборочных Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² gtk_doc (слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ documentation), update_screenshots (-> screenshots), demo-profile (-> profile) ΠΈ demos (-> build-demos).
  • Для macOS 10.15+ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ интСрфСйс опрСдСлСния Ρ†Π²Π΅Ρ‚Π° пиксСлСй Π½Π° экранС (color picker).
  • Для Windows Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° с использованиСм API WGL.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru