GTK 3.96, poskusna izdaja GTK 4, objavljena

10 mesecev po preteklosti testna izdaja predstavljeno GTK 3.96, nova eksperimentalna izdaja prihajajoče stabilne izdaje GTK 4. Veja GTK 4 se razvija kot del novega razvojnega procesa, ki poskuša razvijalcem aplikacij več let zagotoviti stabilen in podprt API, ki ga je mogoče uporabljati brez strahu da je treba aplikacijo vsakih šest mesecev znova napisati zaradi spremembe API-ja v naslednji veji GTK. Dokler GTK 4 ni popolnoma stabiliziran, je priporočljivo, da se aplikacije, ki so na voljo uporabnikom, še naprej gradijo z uporabo veje GTK 3.24.

Glavni Spremembe v GTK 3.96:

  • V API-ju GSK (GTK Scene Kit), ki omogoča upodabljanje grafičnih prizorov prek OpenGL in Vulkan, opravljeno je bilo delo na napakah, ki jih je postalo lažje prepoznati zahvaljujoč novemu orodju za odpravljanje napak gtk4-node-editor, ki vam omogoča nalaganje in prikaz vozlišče upodabljanja v serializiranem formatu (lahko ga shranite v inšpekcijski način GTK inspector) in tudi primerjate rezultate upodabljanja pri uporabi različnih ozadij;

    GTK 3.96, poskusna izdaja GTK 4, objavljena

  • Zmožnosti 3D transformacije so bile dvignjene na raven, ki omogoča ustvarjanje animacijskih učinkov, kot je vrteča se kocka;

    GTK 3.96, poskusna izdaja GTK 4, objavljena

  • Popolnoma prepisan Broadway GDK backend, zasnovan za upodabljanje izpisa knjižnice GTK v oknu spletnega brskalnika. Stara Broadwayjeva izvedba ni ustrezala metodam upodabljanja, predlaganim v GTK 4 (namesto izhoda v medpomnilnik zdaj uporablja model, ki temelji na vozliščih upodabljanja, kjer je izhod sestavljen v obliki drevesa operacij na visoki ravni, učinkovito obdela GPE z uporabo OpenGL in Vulkan).
    Nova možnost Broadway pretvori vozlišča upodabljanja v vozlišča DOM s slogi CSS za upodabljanje vmesnika v brskalniku. Vsako novo stanje zaslona se obdela kot sprememba v drevesu DOM glede na prejšnje stanje, kar zmanjša velikost podatkov, poslanih oddaljenemu odjemalcu. 3D transformacije in grafični učinki so implementirani prek lastnosti transformacije CSS;

  • GDK še naprej izvaja API-je, oblikovane z upoštevanjem protokola Wayland, in čisti API-je, ki temeljijo na X11, ali jih premika v ločeno zaledje X11. Napredek je pri odmiku od uporabe podrejenih površin in globalnih koordinat. Podpora za GDK_SURFACE_SUBSURFACE je bila odstranjena iz GDK;
  • Nadaljevalo se je preoblikovanje kode, povezane z izvajanjem operacij povleci in spusti, vključno s predlaganimi ločenimi objekti GdkDrag in GdkDrop;
  • Obravnava dogodkov je bila poenostavljena in se zdaj uporablja samo za vnos. Preostali dogodki so nadomeščeni z ločenimi signali, na primer namesto izhodnih dogodkov je predlagan signal »GdkSurface::render«, namesto konfiguracijskih dogodkov - »GdkSurface::size-changed«, namesto dogodkov preslikave - »GdkSurface: :mapped”, namesto gdk_event_handler_set() - "GdkSurface::event";
  • Zaledje GDK za Wayland je dodalo podporo za portalski vmesnik za dostop do nastavitev GtkSettings. Za delo z metodami vnosa je bila predlagana podpora za razširitev protokola text-input-unstable-v3;
  • Za razvoj gradnikov je uveden nov objekt GtkLayoutManager z implementacijo sistema za nadzor postavitve elementov v odvisnosti od postavitve vidnega območja. GtkLayoutManager nadomesti podrejene lastnosti v vsebnikih GTK, kot sta GtkBox in GtkGrid. Predlaganih je več že pripravljenih upraviteljev postavitev: GtkBinLayout za preproste vsebnike z enim podrejenim elementom, GtkBoxLayout za linearno poravnane podrejene elemente, GtkGridLayout za poravnavo podrejenih elementov v mrežo, GtkFixedLayout za poljubno pozicioniranje podrejenih elementov, GtkCustomLayout za prevajanje tradicionalnih elementov na podlagi size_allocate vodniki;
  • Javno dostopni objekti za prikaz strani podrejenih elementov so bili dodani gradnikom GtkAssistant, GtkStack in GtkNotebook, na katere se prenesejo podrejene lastnosti teh gradnikov, ki niso povezane s postavitvijo. Ker so bile vse obstoječe podrejene lastnosti pretvorjene v običajne lastnosti, lastnosti postavitve ali premaknjene v predmete strani, je bila podpora za podrejene lastnosti v celoti odstranjena iz GtkContainerja;
  • Osnovna funkcionalnost GtkEntry je bila premaknjena v nov gradnik GtkText, ki vključuje tudi izboljšan vmesnik za urejanje GtkEditable. Vsi obstoječi podrazredi za vnos podatkov so bili predelani kot izvedbe GtkEditable, ki temeljijo na novem gradniku GtkText;
  • Dodan nov gradnik GtkPasswordEntry za obrazce za vnos gesel;
  • GtkWidgets je v GskTransform dodal možnost preoblikovanja podrejenih elementov z uporabo metod linearne preobrazbe, določenih prek CSS ali argumenta gtk_widget_allocate. Navedena funkcija je že uporabljena v gradniku GtkFixed;
  • Dodani so bili novi modeli generiranja seznamov: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel in GtkSingleSelection. V prihodnosti nameravamo v GtkListView dodati podporo za modele seznamov;
  • GtkBuilder je dodal možnost lokalne nastavitve lastnosti objekta (inline), namesto uporabe povezav po identifikatorju;
  • Orodju gtk4-builder-tool dodan ukaz za pretvorbo datotek uporabniškega vmesnika iz GTK 3 v GTK 4;
  • Podpora za ključne teme, tabelarne menije in kombinirana polja je bila ukinjena. Pripomoček GtkInvisible je bil odstranjen.

    Vir: opennet.ru

Dodaj komentar