Seitsme kuu arendustöö jĂ€rel on vĂ€lja antud platvormidevaheline kasutajaliidese loomise kogum 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, et iga kuue kuu tagant peaks rakendusi API muutuste tĂ”ttu ĂŒmber tegema.
Tulevikus on plaanis luua eksperimentaalne haru 4.90, kus arendatakse funktsionaalsust tulevase GTK5 vĂ€ljaande jaoks. GTK5 harusse lisatakse API tasemel ĂŒhilduvust rikkuvad muudatused, nĂ€iteks seoses mĂ”nede vidinate, nagu vana.failide valimise dialooge, mahakandmisega. Samuti arutatakse vĂ”imalust lĂ”petada GTK5 harus X11 protokolli toetamine ja jĂ€tta tööle ainult Wayland protokolli kasutus.
GTK 4.14 hulka kuuluvad kÔige tÀhelepanuvÀÀrsemad parendused:
- Uued unifitseeritud joonestusmootorid ânglâ ja âvulkanâ, mis kasutavad graafika API-sid OpenGL (GL 3.3+ ja GLES 3.0+) ja Vulkan. MĂ”lemad mootorsĂ”idukid pĂ”hinevad Vulkan API-l, kuid ânglâ mootorsĂ”iduki puhul OpenGL jaoks on loodud eraldi abstraktsioonitasand, mis töötab Vulkanil arvesse vĂ”ttes OpenGL ja Vulkan'i erinevusi. Selline lĂ€henemine vĂ”imaldas kasutada ĂŒhiseid infrastruktuure mĂ”lema mootorsĂ”iduki scene graphi, transformatsioonide, tekstuuride ja glĂŒĂŒfide vahemĂ€llu salvestamise töötlemiseks. Ăhildamine on mĂ€rgatavalt lihtsustanud mĂ”lema mootorsĂ”iduki koodibaasi haldamist ja nende ajakohasena ning sĂŒnkroonituna hoidmist.
Erinevalt vanast âglâ mootorist, kus iga renderdamise sĂ”lme (rendernode) tĂŒĂŒbi jaoks kasutati eraldi lihtsat shaderit ja tehti perioodilisi andmete sorteerimisi kadreerimise (offscreen) ajal, uutes mootorites kasutatakse kadreerimise asemel keerulist shaderit (ubershader), mis tĂ”lgendab andmeid puhversalvest. Uute mootorite eristavate vĂ”imaluste hulka kuulub teravate ÀÀrte sujuv damine (mis aitab sĂ€ilitada vĂ€ikseid ĂŒksikasju ja saavutada sujuvamaid jooni), juhuslike gradientide loomine (vĂ”ib kasutada mis tahes arvu vĂ€rve ja sujuv damist) ning murdosa suurendamine.
- Vaikimisi on lubatud uus joonistusmootor ânglâ, samuti on vaikimisi lubatud graafilise API Vulkan tugi. Vaikimisi konfiguratsioonis ĂŒlesehitamisel on nĂŒĂŒd vajalik Vulkan 1.3 tugi.
- GSK (GTK Scene Kit) raamatukokku, mis pakub joonistamisvÔimalusi graafiliste stseenide kaudu OpenGLi ja Vulkaniga, on tehtud olulisi tÀiustusi, mis on seotud fondide joonistamise, hintimise ja mittetÀielike suurusarvude kasutamisega teksti esitlemisel. Hintimisel (glyphi ÀÀrte sujuv damine rasteriseerimisel pildi selguse suurendamiseks madala eraldusvÔimega ekraanidel) on rakendatud subpikselite positsioneerimine. Fondide joonistamise kvaliteeti on parendatud, kui kasutatakse mittetÀielikke suurusarve (nÀiteks 125%). On rakendatud vÔimalus elemente vÀlja tÔrjuda glyphi ja tekstuuri vahemaa salvestitest. Glyphide vahemaa salvestamine on efektiivsem.
- Töötades uue GPU pĂ”hiselt joonistamise toetuse nimel ja loobudes Cairo raamatukogust, on lisatud âteedeâ (Path) tugi kujundite ja alade joonistamiseks, kasutades joonte jĂ€rjestust vĂ”i kĂŒĂŒbilisi ja kvadraatseid Bezieri krive. Teede joonistamiseks on ette nĂ€htud objekti GskPath, mis mÀÀratleb joonte vĂ”i krivide parameetrid, samuti objektid GskPathBuilder krivide loomiseks, GskPathPoint kujundi punkti mÀÀramiseks ja GskPathMeasure mÔÔtmiste tegemiseks, nagu joone pikkus.

- GDK raamatukogus, mis pakub kihti GTK ja graafikasĂŒsteemi vahel, on laiendatud DMA-BUF mehhanismi toetust, mis vĂ”imaldab kasutada tuuma tasemel puhvreid, mis on adresseeritud deskriptorite abil, mis vĂ”imaldab mitte kopeerida pikslite andmeid, vaid edastada neid tuumasĂŒsteemide vahel deskriptorite kaudu. GTK kontekstis vĂ”ib DMA-BUFi kasutada pikslite andmete kopeerimise vĂ€hendamiseks kompositsiooni protsessis ja video töötlemisel (nĂ€iteks vĂ”ib video salvestada riistvaralise dekooderiga dmabuf'i, mis seejĂ€rel kinnitatakse Waylandi pinnale ja edastatakse komposiitmanagersile kasutajaliidese elementide kattes ekraanile ilma liigsete andmekopeerimise toiminguteta).
Otsese sisu, nagu video, edastamiseks komposiitmanagersile (mööda GSK renderdust) on lisatud GtkGraphicsOffload vidin, ja otsese edastamise sisu loomiseks on lisatud klass GdkDmabufTextureBuilder, mis loob GdkTexture objekte dmabuf'ist. dmabuf'i allikaks vÔivad olla pipewire, video4linux vÔi gstreamer. Toetatakse dmabuf formaate NV16, NV61, NV24, NV42 ja YUV.
- Lisa klass GtkPrintDialog, mis on mĂ”eldud printimisdialoogide koostamiseks ja pakub asĂŒnkroonset API-d kasutamiseks asemel GtkPrintOperation.
- GtkEmojiChooser vidinas on vÀrskendatud Emoji andmeid ja lisatud otsimise vÔimalus erinevates keeltes, vÔttes arvesse erinevaid lokaale.
- GtkEntry vidinas on parendatud kasutaja tehtud muudatuste jÀlgimist (tagasivÔtmise operatsiooni rakendamiseks).
- GtkFileChooser vidinas on kiirendatud failide valiku dialooge avamine.
- Klass GtkShortcutsWindow, mis kuvab klahvikombinatsioonide ja ekraanigestide vihjeid, on kohandatud vÀikeste ekraanide jaoks.
- Inspekteerimise reĆŸiimis (GTK inspektor) on tagatud OpenGL, alampindade ja FPS-i teabe kuvamine.
- gtk4-rendernode-tool utiliiti on lisatud kÀsk 'compare'.
- Uus utiliit gtk4-path-tool on pakutud teede töötlemiseks.
- gtk4-node-editor utiliiti on lisatud automaatse salvestamise tugi.
- Vigast, mis pÔhjustas kokkupÔrke kasutamisel Waylandis GNOME Shell baasil mitte olevates keskkondades, on kÔrvaldatud.
- Lisatud on uusi abivahendeid erivajadustega inimeste jaoks, mis on seotud keeruka vormindatud teksti kuvamise, WebKitGTK töötluse ja teavituste kuvamisega. Parandatud on ARIA spetsifikatsioonide toe kvaliteeti. Lisatud on GtkAccessibleText liides, et rakendada ligipÀÀsetavuse funktsioone kolmandate osapoolte tekstivihikutes. GtkText liideses on lisatud AT-SPI protokolli tugi, et suhelda ekraanilugemise seadmetega.
- Lisatud on GPU kasutamine renderdamiseks WGL API abil Windows platvormil.
- CSS-pÔhiste kujunduste laadimise mÀlutarvet on vÀhendatud.
Allikas: opennet.ru

