A fost publicat GTK 3.96, versiunea experimentală GTK 4

După 10 luni de la trecut versiunea de test la sfârșitul anului 2019. Pe lângă protocoalele ActivityPub și diaspora, Hubzilla se federează în cadrul rețelei prin propriul său protocol GTK 3.96, noua versiune experimentală a viitoarei versiuni stabile GTK 4. Ramura GTK 4 se dezvoltă în cadrul unui nou proces de dezvoltare, care încearcă să ofere dezvoltatorilor de aplicații un API stabil și susținut pe parcursul a mai multor ani, care poate fi utilizat fără frica că va trebui să-și reîntregească aplicația din cauza modificărilor API în fiecare ramură GTK. Până la stabilizarea completă a GTK 4, aplicațiile recomandate pentru utilizatori ar trebui să continue să fie compilate folosind ramura GTK 3.24.

Principalele modificări în GTK 3.96:

  • În API-ul GSK (GTK Scene Kit), care oferă redarea scenelor grafice prin OpenGL și Vulkan, s-au efectuat lucrări de reparare a erorilor, care au devenit mai ușor de identificat datorită noului instrument de depanare gtk4-node-editor, care permite încărcarea și afișarea unui nod de redare în format serializat (poate fi salvat în modul de inspecție GTK inspector), precum și compararea rezultatelor redării folosind diverse backend-uri;

    A fost publicat GTK 3.96, versiunea experimentală GTK 4
  • Capacitățile de transformare 3D au fost aduse la un nivel care permite crearea unor efecte de animație, cum ar fi un cub care se rotește;

    A fost publicat GTK 3.96, versiunea experimentală GTK 4
  • Complet a fost rescrisă Backend-ul GDK Broadway, destinat redării ieșirii bibliotecii GTK într-o fereastră de browser web. Vechile implementări Broadway nu se încadrau în metodele de redare propuse în GTK 4 (în loc să fie redat în buffer, acum se folosește un model bazat pe noduri de redare (render nodes), în care ieșirea este compusă sub formă de arbore de operațiuni de nivel înalt, care sunt procesate eficient de GPU prin OpenGL și Vulkan).
    Noua variantă Broadway transformă nodurile de redare în noduri DOM cu stiluri CSS pentru redarea interfeței în browser. Fiecare nouă stare a ecranului este tratată ca o modificare a arborilor DOM față de starea anterioară, ceea ce permite reducerea dimensiunii datelor transmise clientului de la distanță. Transformările 3D și efectele grafice sunt implementate prin proprietatea CSS transform;
  • În GDK, continuarea implementării API-urilor dezvoltate cu gândul la utilizarea protocolului Wayland și curățarea API-urilor legate de X11, sau mutarea lor într-un backend X11 separat. Se observă progres în lucrările de abandonare a utilizării suprafețelor fiice și a coordonatelor globale. Suportul pentru GDK_SURFACE_SUBSURFACE a fost eliminat din GDK;
  • A continuat refactorizarea codului legat de execuția operațiunilor Drag-and-Drop, inclusiv propunerea unor obiecte separate GdkDrag și GdkDrop;
  • A fost simplificată gestionarea evenimentelor, care acum sunt utilizate doar pentru input. Celelalte evenimente au fost înlocuite cu semnale separate, de exemplu, în loc de evenimente de output a fost propus semnalul „GdkSurface::render”, în loc de evenimente de ajustare — „GdkSurface::size-changed”, în loc de evenimente de asociere — „GdkSurface::mapped”, în loc de gdk_event_handler_set() — „GdkSurface::event”;
  • În backend-ul GDK pentru Wayland a fost adăugat suport pentru interfața portal pentru accesarea setărilor GtkSettings. Pentru lucrul cu metodele de input, a fost propus suport pentru extensia protocolului text-input-unstable-v3;
  • Pentru dezvoltarea widget-urilor a fost introdus un nou obiect GtkLayoutManager, cu implementarea unui sistem de gestionare a aranjamentului elementelor în funcție de dimensiunea zonei vizibile. GtkLayoutManager a înlocuit proprietățile fiice în containerele GTK, cum ar fi GtkBox și GtkGrid. Au fost propuse mai multe manageri de aranjament: GtkBinLayout pentru containere simple cu un singur element fiu, GtkBoxLayout pentru elemente fiice aliniate liniar, GtkGridLayout pentru alinierea elementelor fiice într-o rețea, GtkFixedLayout pentru poziționarea arbitrară a elementelor fiice, GtkCustomLayout pentru translatrea elementelor tradiționale bazate pe manipulatoarele size_allocate;
  • În widget-urile GtkAssistant, GtkStack și GtkNotebook au fost adăugate obiecte accesibile public pentru ieșirea paginată a elementelor fiice, la care au fost mutate proprietățile de date ale widget-urilor care nu erau legate de aranjament (Layout). Deoarece toate proprietățile fiice existente au fost transformate în proprietăți obișnuite, proprietățile de aranjament au fost mutate în obiectele paginată, iar suportul pentru proprietățile fiice a fost complet eliminat din GtkContainer;
  • Funcționalitatea de bază a GtkEntry a fost mutată în noul widget GtkText, care include, de asemenea, o interfață extinsă de editare GtkEditable. Toate subclasele existente de input au fost refăcute sub formă de implementări GtkEditable bazate pe noul widget GtkText;
  • A fost adăugat un nou widget GtkPasswordEntry pentru formularele de introducere a parolelor;
  • În GtkWidgets a fost adăugată posibilitatea de a transforma elementele fiice prin metode de transformare liniară, specificate prin CSS sau argumentul gtk_widget_allocate în GskTransform. Această capacitate a fost deja aplicată în widget-ul GtkFixed;
  • Modele noi de generare a listelor au fost adăugate: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel și GtkSingleSelection. În viitor, se planifică adăugarea suportului pentru modelele de liste în GtkListView;
  • În GtkBuilder a fost adăugată posibilitatea de a seta proprietățile obiectelor inline, în loc de a folosi referințe prin identificator;
  • În gtk4-builder-tool a fost adăugată o comandă pentru a transforma fișierele UI din GTK 3 în GTK 4;
  • S-a renunțat la suportul pentru temele de bază (key theme), meniurile tabulare (tabular menu) și blocurile combinate (combo box). Widgetul GtkInvisible a fost eliminat.

    Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster