Pas pas shtatĂ« muajsh zhvillimi, u publikua lĂ«vizja e kĂ«tij toolkit-i multplatformĂ« pĂ«r krijimin e ndĂ«rfaqeve grafike â GTK 4.14.0. GTK 4 po zhvillohet nĂ« kuadĂ«r tĂ« njĂ« procesi tĂ« ri zhvillimi, i cili pĂ«rpiqet t'u ofrojĂ« zhvilluesve tĂ« aplikacioneve njĂ« API tĂ« qĂ«ndrueshĂ«m dhe tĂ« mbĂ«shtetur pĂ«r disa vjet, qĂ« mund tĂ« pĂ«rdoret pa shqetĂ«sim se çdo gjashtĂ« muaj do tĂ« duhet tĂ« rishkruajnĂ« aplikacionet pĂ«r shkak tĂ« ndryshimeve nĂ« API nĂ« degĂ«n tjetĂ«r tĂ« GTK.
Më tej, planifikohet formimi i një dege eksperimantal 4.90, në të cilën do të zhvillohet funksionaliteti për lëshimin e ardhshëm GTK5. Në degën GTK5 do të përfshihen ndryshime që prishin kompatibilitetin në nivel API, për shembull, ato që lidhen me kalimin në statusin e vjetruar për disa widget-e, si dialogu i vjetër për zgjedhjen e skedarëve. Po diskutohet gjithashtu mundësia e ndërprerjes së mbështetjes për protokollin X11 në degën GTK5 dhe lënia e mundësisë së funksionimit vetëm me përdorimin e protokollit Wayland.
Mes përmirësimeve më të dukshme në GTK 4.14:
- Në paketë përfshihen motorët e rinj të unifikuar të renderimit «ngl» dhe «vulkan», që përdorin API-të grafike OpenGL (GL 3.3+ dhe GLES 3.0+) dhe Vulkan. Të dy motorët bazohen në API Vulkan, por në motorin «ngl» për OpenGL është krijuar një nivel të veçantë abstraksioni që punon mbi Vulkan duke u marrë parasysh dallimet midis OpenGL dhe Vulkan. Ky qasje ka lejuar angazhimin e një infrastrukture të përbashkët për trajtimin e grafit të skenës (scene graph), transformimeve, cachimit të teksturave dhe glifëve. Unifikimi gjithashtu ka thjeshtuar ndjeshëm mbështetje e kodit të të dy motorëve dhe ruajtjen e tyre në një gjendje të përditësuar dhe të sinkronizuar.
Ndryshe nga motori i vjetër «gl», në të cilin për çdo lloj të nyjave të renderimit (rendernode) është përdorur një shader i thjeshtë dhe është kryer një ripërkëthim i të dhënave në mënyrë të rregullt gjatë renderimit jashtë ekranit (offscreen), në motorët e rinj, në vend të renderimit jashtë ekranit aplikohet një shader kompleks (ubershader) që interpreton të dhënat nga buffer-i. Nga mundësitë e dallueshme të motorëve të rinj, përmendet anti-aliasing (lejon ruajtjen e detajeve të vogla dhe arritjen e renditjes më të lëmuar) dhe formimi i gradienteve të rastësishme (mund të përdoren çfarëdo numri ngjyrash dhe lëmuar).
- Në mënyrë të paracaktuar është aktivizuar motori i ri i renderimit «ngl», si dhe është përfshirë përkrahja për API-në grafike Vulkan. Në ndërtimin me konfigurim të paracaktuar tani kërkohet përkrahja për Vulkan 1.3.
- NĂ« bibliotekĂ«n GSK (GTK Scene Kit), e cila ofron mundĂ«si vizatimi tĂ« skenave grafike pĂ«rmes OpenGL dhe Vulkan, janĂ« bĂ«rĂ« pĂ«rmirĂ«sime tĂ« konsiderueshme lidhur me vizatimin e fontĂ«ve, hinting dhe pĂ«rdorimin e vlerave joshkallore tĂ« shkallĂ«zimit gjatĂ« shfaqjes sĂ« tekstit. NĂ« hinting (glatimi i konturit tĂ« glifit gjatĂ« rasterizimit pĂ«r tĂ« rritur qartĂ«sinĂ« nĂ« ekranet me rezolucion tĂ« ulĂ«t) Ă«shtĂ« realizuar pozicionimi subpikselor i glifave. ĂshtĂ« pĂ«rmirĂ«suar cilĂ«sia e vizatimit tĂ« fontĂ«ve me vlera joshkallore shkallĂ«zimi (pĂ«r shembull, 125%). ĂshtĂ« realizuar mbĂ«shtetje pĂ«r evakuimin e elementeve nga cache pĂ«r glifat dhe teksturat. ĂshtĂ« rritur efikasiteti i caching tĂ« glifave.
- Në kuadër të punës për të shmangur përdorimin e bibliotekës Cairo në favor të renderimit me GPU, është shtuar mbështetje për «rrugët» (Path) për renderimin e mënyrave dhe zonave, duke përdorur një renditje vijash ose kurbave kubike dhe katrore të Bézier-it. Për renderimin me rrugë është propozuar objekti GskPath, që përcakton parametrat e vijave ose kurbave, si dhe objektet GskPathBuilder për krijimin e kurbave, GskPathPoint për përcaktimin e një pike në figurë dhe GskPathMeasure për kryerjen e matjeve, si p.sh., gjatësisë së konturit.

- Në bibliotekën GDK, e cila ofron një ndërfaqe midis GTK dhe sistemit grafik, është zgjeruar mbështetje për mekanizmin DMA-BUF, i cili lejon përdorimin e bufereve në nivelin e bërthamës, të adresuara përmes një deshifruesi, duke mundësuar kështu që në vend të kopjimit të të dhënave pixel, ato të transmetohen midis nën-sistemeve të bërthamës përmes deshifruesit. Në kontekstin e GTK, DMA-BUF mund të përdoret për të minimizuar kopjimin e të dhënave pixel gjatë procesit të kompozitimit dhe kur punoni me video (për shembull, video mund të regjistrohet nga një dekoder hardueri në dmabuf, e më pas të bashkëngjitet në sipërfaqen Wayland dhe t'i kalojë menaxherit të kompozitimit për të mbivendosur elementët e ndërfaqes dhe për ta shfaqur në ekran pa operacione të panevojshme të kopjimit të të dhënave).
Për dërgimin e drejtpërdrejtë të përmbajtjes, si video, në menaxherin e kompozitimit (duke anashkaluar renderimin GSK), është shtuar widget-i GtkGraphicsOffload, dhe për krijimin e përmbajtjes për dërgim të drejtpërdrejtë është shtuar klasa GdkDmabufTextureBuilder, e cila krijon objekte GdkTexture nga dmabuf. Si burim për dmabuf mund të përdoren pipewire, video4linux ose gstreamer. Formatet e mbështetura dmabuf janë NV16, NV61, NV24, NV42 dhe YUV.
- Shtuar klasa GtkPrintDialog, e cila është e destinuar për të krijuar dialogë për printimin dhe ofron një API asinkron për përdorim në vend të GtkPrintOperation.
- Në widgetin GtkEmojiChooser janë përditësuar të dhënat Emoji dhe është shtuar mundësia për t'u kërkuar në gjuhë të ndryshme duke marrë parasysh lokale të ndryshme.
- Në widgetin GtkEntry është përmirësuar ndjekja e ndryshimeve të bëra nga përdoruesi (për të realizuar operacionin e shfuqizimit).
- Në widgetin GtkFileChooser është përshpejtuar hapja e dialogut për zgjedhjen e skedarëve.
- Klasa GtkShortcutsWindow, e cila shfaq sugjerimet për kombinimet e çelësave dhe gjestet në ekran, është adaptuar për ekrane të vogla.
- Në modalitetin e inspektimit (GTK inspector) është siguruar shfaqja e informacionit mbi OpenGL, nënfaqet dhe FPS.
- Në utilitarin gtk4-rendernode-tool është shtuar komandë e re «compare».
- U propozua një utilitet i ri gtk4-path-tool për të punuar me rrugët.
- Në utilitetin gtk4-node-editor është shtuar mbështetje për ruajtjen automatike.
- ĂshtĂ« eliminuar ndalimi i papritur, i cili shfaqej gjatĂ« pĂ«rdorimit tĂ« Wayland nĂ« mjedise qĂ« nuk janĂ« tĂ« bazuara nĂ« GNOME Shell.
- JanĂ« shtuar mjete tĂ« reja pĂ«r personat me aftĂ«si tĂ« kufizuara, tĂ« lidhura me shfaqjen e teksteve tĂ« komplikuara tĂ« formatuara, funksionimin e WebKitGTK dhe shfaqjen e njoftimeve. ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r specifikimet ARIA. ĂshtĂ« shtuar ndĂ«rfaqja GtkAccessibleText pĂ«r tĂ« pĂ«rdorur mundĂ«sitĂ« e aksesit nĂ« widget-et e tjera tekstuale. NĂ« ndĂ«rfaqen GtkText Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r protokollin AT-SPI pĂ«r ndĂ«rveprimin me lexuesit e ekranit.
- ĂshtĂ« shtuar mundĂ«sia e renderimit me ndihmĂ«n e GPU, duke pĂ«rdorur API-nĂ« WGL nĂ« platformĂ«n Windows.
- ĂshtĂ« reduktuar konsumimi i memories gjatĂ« ngarkimit tĂ« temave tĂ« stilizimit nĂ« bazĂ« CSS.
Burimi: opennet.ru

