GTK 4.14 graafikakomplekt on saadaval uute OpenGL ja Vulkani mootoritega

Pärast seitset kuud arendamist on välja antud mitmeplatvormiline kasutajaliidese loomise komplekt — GTK 4.14.0. GTK 4 areneb uue arendusprotsessi raames, mille eesmärk on pakkuda rakenduste arendajatele stabiilset ja mitme aasta vältel toetatud API-d, mida saab kasutada ilma riskita, et iga kuue kuu järel tuleb API muutuste tõttu rakendusi ümber teha.

Tulevikus on plaanis luua eksperimentaalne versioon 4.90, kus arendatakse funktsionaalsust tulevase GTK5 väljaande jaoks. GTK5 versioon sisaldab API tasemel ühilduvusse puutuvat muudatust, näiteks teatud vidinate, nagu vana failide valimise dialooge, vananemise tunnustamist. Samuti arutatakse GTK5 versioonis X11 protokolli toe lõpetamist ning võimaluse jätkamist ainult Waylandi protokoli kasutamisega.

GTK 4.14 kõige märgatavamate täiustuste hulka kuuluvad:

  • Uutesse mootorsüsteemidesse on lisatud uuendatud ühised renderdussüsteemid «ngl» ja «vulkan», mis kasutavad graafikute API-sid OpenGL (GL 3.3+ ja GLES 3.0+) ning Vulkan. Mõlemad mootorsüsteemid põhinevad Vulkan API-l, kuid «ngl» mootorsüsteemis OpenGL-ile on loodud eraldi abstraktsioonikiht, mis töötab Vulkan üle, arvesse võttes OpenGL-i ja Vulkan-i erinevusi. See lähenemine on võimaldanud ühendada mõlema mootorsüsteemi jaoks ühtse infrastruktuuri stseenigraafi (scene graph) töötlemiseks, transformatsioonide, tekstuuride ja glüfüde salvestamiseks. Ühildamine on samuti oluliselt lihtsustanud mõlema mootorsüsteemi koodibaasi haldamist ja nende hoidmist ajakohasena ja sünkroniseerituna.

    Erinevalt vanast „gl” mootormootorist, kus igasse renderdamise sõlme (rendernode) kasutati eraldi lihtsat shaderit ja andmete perioodiline ümberjärjestamine toimus taustal renderdamisel (offscreen), uutest mootormootoritest kasutatakse taustal renderdamise asemel keerulist shaderit (ubershader), mis tõlgendab andmeid puhvrilt. Uute mootormootorite eristavate omaduste seas mainitakse kontuuride sujuvust (mis võimaldab säilitada väikseid detaile ja saavutada ühtlasemate kontuuride joonistamine), suvaliste gradientide genereerimist (võib kasutada igasuguseid värve ja sujuvust) ning fraktsionaalset skaleerimist.

  • Vaikimisi on aktiveeritud uus joonistusmootor „ngl” ning vaikimisi on toetatud ka graafilist API-d Vulkan. Vaikimisi konfiguratsioonis nõutakse nüüd Vulkan 1.3 toetust.
  • GTK Scene Kit (GSK) teegi, mis pakub graafika stseenide joonistamise võimalusi OpenGL ja Vulkan kaudu, on saanud olulisi täiustusi, mis on seotud fondide joonistamise, hintimise ja mittehaalsete skaalaväärtuste kasutamisega teksti esitamisel. Hintimise (glyphi kontuuri sujuvamaks muutmine rasteriseerimise ajal madala eraldusvõimega ekraanidel) puhul on rakendatud subpikslite positsioneerimist. Fondide joonistamise kvaliteet on suurenenud mittehaalsete skaalaväärtuste korral (näiteks 125%). On rakendatud ka glüfide ja tekstuuride vahemälu elementide väljapressimise toetust. Glüfide vahemälu efektiivsus on suurenenud.
  • GPU joonistuse suunas liikumise raames on teele lisatud 'teede' (Path) toetus joonistamiseks kujundite ja alade joonistamiseks, kasutades joonte või kuup- ja kvadratuursete Bezier-kurvide jada. Teede kaudu joonistamiseks on pakutud GskPath objekti, mis määratleb joonte või kõverate parameetrid, samuti GskPathBuilder objekte kõverate loomiseks, GskPathPoint objekti kujundi punktiks määratlemiseks ja GskPathMeasure objekti mõõtmiste täitmiseks, nagu kontuuri pikkus.
    GTK 4.14 graafikakomplekt on saadaval uute OpenGL ja Vulkani mootoritega
  • GDK teegib vahekihte GTK ja graafikasisüsteemi vahel, kus on laienenud DMA-BUF mehhanismi tugi, mis võimaldab kasutada tuumataseme puhverdusi, mida adresseeritakse deskriptorite abil. See võimaldab edastada piksliandmeid tuumasisüsteemide vahel deskriptorite kaudu, selle asemel et andmeid kopeerida. GTK kontekstis võib DMA-BUF-i kasutada piksliandmete kopeerimise vähendamiseks kompositsioneerimise ja video töötlemise protsessis (näiteks, video võidakse salvestada riistvaralise dekooderiga dmabuf-i ning seejärel kinnitada Waylandi pinnale ja edastada komposiitmanagerile kasutajaliidese elementide üleviimiseks ja kuvamiseks ilma liigsete andmekopeerimise toiminguteta).

    Otseseks sisu, näiteks video, edastamiseks komposiitmanagerile (mööda GSK renderdamist) on lisatud GtkGraphicsOffload vidin, ning otsese edastamise sisu loomiseks on loodud klass GdkDmabufTextureBuilder, mis loob GdkTexture objekte dmabuf-ist. DMABUF-i allikateks võivad olla pipewire, video4linux või gstreamer. Toetatakse DMABUF formaate NV16, NV61, NV24, NV42 ja YUV.

  • Lisatud klass GtkPrintDialog, mis on mõeldud printimise dialoogide loomiseks ja pakub asünkroonset API-d kasutamiseks alternatiivina GtkPrintOperation'ile.
  • Vidinas GtkEmojiChooser on uuendatud Emoji andmeid ja lisatud võimalus otsida erinevates keeltes, arvestades erinevaid lokaale.
  • Vidinas GtkEntry on parendatud kasutaja poolt tehtud muudatuste jälgimist (tagasi võtmise teostamiseks).
  • Vidinas GtkFileChooser on kiirendatud failivaliku dialooge avamine.
  • Klass GtkShortcutsWindow, mis kuvab klaviatuurikombinatsioonide ja ekraanigestide näpunäiteid, on kohandatud väikestele ekraanidele.
  • Inspektsioonirežiimis (GTK inspector) on tagatud OpenGL, aluspinna ja FPS teabe kuvamine.
  • Tööriista gtk4-rendernode-tool on lisatud käsk 'compare'.
  • Uus tööriist gtk4-path-tool on ettepanek teede haldamiseks.
  • Tööriistus gtk4-node-editor on lisatud automaatse salvestamise tugi.
  • On kõrvaldatud häired, mis ilmusid Waylandi kasutamisel GNOME Shell'i baasil mitte olevates keskkondades.
  • Lisatud on uusi abivahendeid puuetega inimestele, mis on seotud keerukalt vormindatud teksti kuvamise, WebKitGTK töötluse ja teatiste edastamisega. Parendatud on ARIA spetsifikatsioonide toetust. Lisatud on liides GtkAccessibleText, et kasutada ligipääsetavuse võimalusi kolmandate osapoolte tekstivahendites. GtkText liidesesse on lisatud AT-SPI protokolli tugi kooskõlas ekraanilugejatega.
  • Lisatud on GPU renderdamise võimalus, kasutades WGL API-d Windows platvormil.
  • CSS-põhiste temaatikate laadimisel on vähendatud mälu kasutust.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster