lõplik katseversioon raamistikust , kus on rakendatud kõik GTK 4 jaoks kavandatud võimalused. GTK 4 haru areneb uue arendusprotsessi raames, mis püüab pakkuda rakenduste arendajatele stabiilset ja mitme aasta jooksul toetatud API-d, mida saab kasutada, muretsemata, et iga kuue kuu tagant tuleb rakendusi ümber teha API muutuste tõttu järgmises GTK harus. GTK 4 väljaandmine on plaanitud kuni aasta lõpuni.
Olulisimad ühes poolelt võib märkida:
- Elementide paigutuse meetod, mis põhineb piirangutel (), mille puhul alampunktide asukoht ja suurus määratakse, tuginedes kaugusele piiridest ja teiste elementide suurusele.
- Renderdamismoodul, mis põhineb graafikute API-l Vulkan, kus on rakendatud shadereid paljude ressursimahukate CSS elementide jaoks, mida kasutatakse GTK vidinates.
- Integreerimine (GTK Scene Kit) koos võimalustega graafiliste stseenide renderdamiseks OpenGL-i ja Vulkaniga.
- Renderdamise korraldus on üle vaadatud — väljundi jagamine on nüüd aluseks renderdamise sõlmedele (render nodes), kus väljundit koondatakse kõrge taseme operatsioonide puu kujul, mida GPU töötab efektiivselt OpenGL-i ja Vulkaniga.
- paindlikuks sisendifookuse muutuste töötlemiseks.
- Uuendatud sündmuste edastamise mudel, mis võimaldab vältida subwindow'ide kasutamist sisendi sündmuste marsruutimisel. Uue mudeli vajadus tuleneb animatsiooniefektide intensiivsemast kasutamisest, mille renderdamine peab toimuma nähtavate elementide paigutuse muutmata ja seega ilma subwindow'ide kasutamiseta.
- GDK API on üle vaadatud, võttes arvesse Waylandi protokolli ja sellega seotud kontseptsioone. X11-le ja Waylandile seotud võimalused on tõstetud eraldi .
- API suurem puhastamine, sealhulgas klasside GtkMenu, GtkMenuBar ja GtkToolbar eemaldamine ning GMenu ja erinevate rippmenüüde (popover) versioonide võrdsustamine.
- GtkTextView's ja teistes sisendvidinates on integreeritud muudatuste tühistamise (undo) süsteem.
- Lisatud on uus klass GtkNative vidinate jaoks, mis omavad oma kuvapinda ja suudavad töötada iseseisvalt, ilma vanemate vidinatega seotud olemata.
- Lisatud uued vidinad, sealhulgas GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView ja vidin Emoji kuvamiseks.
- Vidinate arendamiseks on esitatud uus objekt GtkLayoutManager, mille rakendus suudab hallata elementide paigutust nähtava ala suuruse alusel. GtkLayoutManager asendab GTK konteinerites nüüdsest lapsendatud omadused, nagu GtkBox ja GtkGrid.
- Sündmuste töötlemine on lihtsustatud, nüüd kasutatakse sündmusi ainult sisendi jaoks. Üksikud sündmused on asendatud eraldi signaalidega, näiteks väljundisündmuste asemel on ette nähtud signaal „GdkSurface::render”, seadistussündmuste asemel „GdkSurface::size-changed”.
- Uus abstraktsioonitaseme GdkPaintable lisamine, mis esindab objekte, mida saab joonistada igal pool, mis tahes suurusega, ilma et oleks vaja layout-kihte sorteerida.
- Broadway backend on ümber kirjutatud, võimaldades GTK raamatukogu väljundi joonistamist veebibrauseri aknas.
- Drag-and-Drop operatsioonidega seotud API on ümber projekteeritud, sealhulgas eraldi objektide GdkDrag ja GdkDrop pakkumine.
Väärib märkimist võrreldes eelmise testversiooniga:
- Vanem versioon Acessibility API-st inimestele, kellel on erivajadusi, on eemaldatud, selle asemel on esitatud uus võimalus, mis põhineb ja vidina GtkAccessible põhjal.
- Lisatud on redigeeritavate siltide tugi (GtkEditableLabel).
- Pakutud on uued loendimudelid järjehoidjate (GtkBookmarkList), stringide (GtkStringList) ja valikutute plokkide (GtkBitset) kuvamiseks.
- GtkTreeView vidinas on rakendatud rakkude redigeerimise võimalus.
- GtkGridView ja GtkListView’s on parendatud kerimise tõhusust, lisatud automaatne kerimine ja automaatne avamine.
- GtkWidget'i erinevate toimingute töötlemine on oluliselt kiirem.
- GtkFilterListModel ja GtkSortListModel on juurde toodud toetav inkrementaalne kerimine ja filtreerimine.
- Inspektorisse on lisatud toetus loendite mudelite uurimisele ja võimalus otse liikuda objektide vahel.
- GDK-s on tagatud kerimisajaloo salvestamine, GdkDevice API on puhastatud, lõpetatud on seadmete jagamine master ja slave.
- Lisatud on uus GDK backend macOS-ile.
- Windowsile pakutakse uut GDK graafika backendit, mis põhineb , OpenGL ES väljakutsete tõlkimisel OpenGLi, Direct3D 9/11, Desktop GLi ja Vulkanisse.
Allikas: opennet.ru
