GTK 4.14 grafikværktøjssæt med nye motorer til OpenGL og Vulkan er tilgængeligt

Efter syv måneders udvikling er udgivelsen af ​​et multi-platform værktøjssæt til at skabe en grafisk brugergrænseflade blevet offentliggjort - GTK 4.14.0. GTK 4 udvikles som en del af en ny udviklingsproces, der forsøger at give applikationsudviklere en stabil og understøttet API i flere år, som kan bruges uden frygt for at skulle omskrive applikationer hver sjette måned på grund af API-ændringer i den næste GTK afdeling.

I fremtiden er det planlagt at danne en eksperimentel gren 4.90, som skal udvikle funktionalitet til den fremtidige udgivelse af GTK5. GTK5-grenen vil inkludere ændringer, der krænker kompatibilitet på API-niveau, for eksempel relateret til udfasning af nogle widgets, såsom den gamle filvalgsdialog. Muligheden for at afslutte understøttelsen af ​​X5-protokollen i GTK11-grenen og lade muligheden for kun at arbejde ved at bruge Wayland-protokollen diskuteres også.

Nogle af de mest bemærkelsesværdige forbedringer i GTK 4.14 inkluderer:

  • Det inkluderer nye unified rendering engines "ngl" og "vulkan" ved hjælp af OpenGL (GL 3.3+ og GLES 3.0+) og Vulkan grafik API'er. Begge motorer er baseret på Vulkan API, men "ngl"-motoren har et separat abstraktionslag til OpenGL, der kører oven på Vulkan, idet der tages højde for forskellene mellem OpenGL og Vulkan. Denne tilgang gjorde det muligt at bruge en fælles infrastruktur i begge motorer til behandling af scenegrafen, transformationer, caching-teksturer og glyffer. Ensretning forenklede også betydeligt vedligeholdelsen af ​​kodebasen for begge motorer og holdt dem opdaterede og synkroniserede.

    I modsætning til den gamle gl-motor, som brugte en separat simpel shader for hver type gengivelsesknude og periodisk omsorterede dataene under offscreen-rendering, bruger de nye motorer i stedet for offscreen-rendering en kompleks shader (ubershader), der fortolker dataene fra bufferen . Blandt de karakteristiske træk ved de nye motorer nævnes konturudjævning (giver dig mulighed for at bevare fine detaljer og opnå at tegne glattere konturer), dannelsen af ​​vilkårlige gradienter (et vilkårligt antal farver og anti-aliasing kan bruges) og fraktioneret skalering.

  • Den nye "ngl"-gengivelsesmotor er aktiveret som standard, og understøttelse af Vulkan grafik API er også aktiveret som standard. Ved indbygning af standardkonfigurationen kræves der nu Vulkan 1.3-understøttelse.
  • GSK-biblioteket (GTK Scene Kit), som giver mulighed for at gengive grafiske scener gennem OpenGL og Vulkan, har foretaget betydelige forbedringer relateret til skrifttypegengivelse, antydninger og brugen af ​​ikke-heltalsskalaværdier ved visning af tekst. Ved hints (udjævning af glyfens kontur under rasterisering for at øge klarheden på skærme med lav opløsning), implementeres subpixelpositionering af glyferne. Kvaliteten af ​​skrifttypegengivelse er blevet forbedret ved ikke-heltalsskalaværdier (for eksempel 125%). Implementeret støtte til udsættelse af elementer fra caches til glyffer og teksturer. Forbedret effektivitet af glyph-cache.
  • Som en del af bevægelsen væk fra at bruge Cairo-biblioteket til fordel for GPU-gengivelse, er der tilføjet understøttelse af "Paths" til at tegne former og områder ved hjælp af en sekvens af linjer eller kubiske og kvadratiske Bezier-kurver. Til tegning med stier er der et GskPath-objekt, der definerer parametrene for linjer eller kurver, samt GskPathBuilder-objekter til at lave kurver, GskPathPoint til at definere et punkt på en figur og GskPathMeasure til at tage mål, såsom længden af ​​en sti.
    GTK 4.14 grafikværktøjssæt med nye motorer til OpenGL og Vulkan er tilgængeligt
  • GDK-biblioteket, som giver et lag mellem GTK og det grafiske undersystem, har udvidet understøttelse af DMA-BUF-mekanismen, som tillader brugen af ​​buffere på kerneniveau adresseret ved hjælp af en deskriptor, hvilket gør det muligt i stedet for at kopiere pixeldata, at overføre dem mellem kerneundersystemer gennem en deskriptor. I forbindelse med GTK kan DMA-BUF bruges til at minimere kopieringen af ​​pixeldata under sammensætning og ved arbejde med video (f.eks. kan video optages med en hardwaredekoder i dmabuf, derefter fastgøres til en Wayland-overflade og videregives til en compositing manager til UI og output compositing til skærmen uden unødvendige datakopieringsoperationer).

    En GtkGraphicsOffload-widget er blevet tilføjet til direkte at sende indhold såsom video til den sammensatte manager (omgå GSK-gengivelsen), og en GdkDmabufTextureBuilder-klasse er blevet tilføjet for at skabe GdkTexture-objekter fra dmabuf for at skabe indhold til direkte overførsel. Pipewire, video4linux eller gstreamer kan bruges som kilde til dmabuf. Formaterne dmabuf NV16, NV61, NV24, NV42 og YUV understøttes.

  • Tilføjet GtkPrintDialog-klassen, designet til at generere udskriftsdialoger og tilbyde en asynkron API til brug i stedet for GtkPrintOperation.
  • GtkEmojiChooser-widgetten har opdateret Emoji-data og tilføjet muligheden for at søge på forskellige sprog under hensyntagen til forskellige lokaliteter.
  • GtkEntry-widgetten har forbedret sporing af ændringer foretaget af brugeren (for at implementere fortryd-handlingen).
  • I GtkFileChooser-widgetten er åbningen af ​​filvalgsdialogen blevet fremskyndet.
  • Klassen GtkShortcutsWindow, som viser værktøjstip til tastaturgenveje og skærmbevægelser, er tilpasset til små skærme.
  • Inspektionstilstand (GTK-inspektør) giver visning af information om OpenGL, undergrunde og FPS.
  • Tilføjet "compare"-kommando til gtk4-rendernode-tool-værktøjet.
  • Et nyt værktøj, gtk4-path-tool, er blevet foreslået til at arbejde med stier.
  • Understøttelse af automatisk optagelse er blevet tilføjet til gtk4-node-editor-værktøjet.
  • Rettede et nedbrud, der opstod ved brug af Wayland i ikke-GNOME Shell-baserede miljøer.
  • Tilføjet nye funktioner til personer med handicap relateret til visning af kompleks formateret tekst, betjening af WebKitGTK og visning af meddelelser. Forbedret understøttelse af ARIA-specifikationer. Tilføjet GtkAccessibleText-grænseflade til brug af tilgængelighedsfunktioner i tredjeparts tekstwidgets. GtkText-grænsefladen har tilføjet understøttelse af AT-SPI-protokollen til interaktion med skærmlæsere.
  • Tilføjet GPU-gengivelseskapacitet ved hjælp af WGL API på Windows-platformen.
  • Reduceret hukommelsesforbrug ved indlæsning af CSS-baserede temaer.

Kilde: opennet.ru

Tilføj en kommentar