GTK 3.96, eksperimentele vrystelling van GTK 4, gepubliseer

10 maande daarna van die verlede toetsvrystelling aangebied GTK 3.96, 'n nuwe eksperimentele vrystelling van die komende stabiele vrystelling van GTK 4. Die GTK 4-tak word ontwikkel as deel van 'n nuwe ontwikkelingsproses wat poog om toepassingsontwikkelaars vir 'n paar jaar van 'n stabiele en ondersteunde API te voorsien wat sonder die vrees gebruik kan word om die toepassing elke ses maande te moet herskryf as gevolg van verandering van API in die volgende GTK-tak. Totdat GTK 4 ten volle gestabiliseer is, word dit aanbeveel dat toepassings wat aan gebruikers aangebied word, voortgaan om met behulp van die tak gebou te word GTK 3.24.

Die belangrikste veranderinge in GTK 3.96:

  • In die API GSK (GTK Scene Kit), wat die weergawe van grafiese tonele via OpenGL en Vulkan verskaf, is gewerk aan foute wat makliker geword het om te identifiseer danksy die nuwe ontfoutingsnutsding gtk4-node-editor, wat jou toelaat om die lewering van nodus in 'n geserialiseerde formaat (kan gestoor word in inspeksiemodus GTK-inspekteur), en vergelyk ook die leweringsresultate wanneer verskillende backends gebruik word;

    GTK 3.96, eksperimentele vrystelling van GTK 4, gepubliseer

  • 3D-transformasievermoëns is tot 'n vlak gebring wat jou toelaat om animasie-effekte soos 'n roterende kubus te skep;

    GTK 3.96, eksperimentele vrystelling van GTK 4, gepubliseer

  • ten volle herskryf Broadway GDK-rugsteun wat ontwerp is om GTK-biblioteekuitset in 'n webblaaiervenster te lewer. Die ou Broadway-implementering het nie by die leweringmetodes wat in GTK 4 voorgestel is, ingepas nie (in plaas van uitset na 'n buffer, gebruik dit nou 'n model gebaseer op leweringsnodes, waar die uitset saamgestel is in die vorm van 'n boom van hoëvlak-bewerkings, doeltreffend deur die GPU verwerk met OpenGL en Vulkan).
    Die nuwe Broadway-opsie omskep render-nodusse in DOM-nodusse met CSS-style vir die weergawe van die koppelvlak in die blaaier. Elke nuwe skermstatus word verwerk as 'n verandering in die DOM-boom relatief tot die vorige toestand, wat die grootte van data wat na die afgeleë kliënt versend word, verminder. 3D-transformasies en grafiese effekte word deur die CSS-transformasie-eienskap geïmplementeer;

  • GDK gaan voort om API's te implementeer wat ontwerp is met die Wayland-protokol in gedagte, en maak X11-gebaseerde API's skoon of skuif dit na 'n aparte X11-agterkant. Daar is vordering in die werk om weg te beweeg van die gebruik van kinderoppervlaktes en globale koördinate. Ondersteuning vir GDK_SURFACE_SUBSURFACE is van GDK verwyder;
  • Herfaktorering van die kode wat verband hou met die uitvoering van Sleep-en-Drop-bewerkings het voortgegaan, insluitend die voorgestelde afsonderlike GdkDrag- en GdkDrop-objekte;
  • Gebeurtenishantering is vereenvoudig en word nou slegs vir insette gebruik. Die oorblywende gebeurtenisse word vervang met afsonderlike seine, byvoorbeeld, in plaas van uitsetgebeurtenisse, word die sein "GdkSurface::render" voorgestel, in plaas van konfigurasiegebeurtenisse - "GdkSurface::grootte verander", in plaas van karteringgebeurtenisse - "GdkSurface: :mapped", in plaas van gdk_event_handler_set() - "GdkSurface::event";
  • Die GDK-agtergrond vir Wayland het ondersteuning bygevoeg vir 'n portaalkoppelvlak vir toegang tot GtkSettings-instellings. Om met invoermetodes te werk, is ondersteuning vir die teks-invoer-onstabiele-v3-protokoluitbreiding voorgestel;
  • Vir die ontwikkeling van widgets word 'n nuwe GtkLayoutManager-objek bekendgestel met die implementering van 'n stelsel vir die beheer van die uitleg van elemente, afhangende van die uitleg van die sigbare area. GtkLayoutManager vervang kindereienskappe in GTK-houers soos GtkBox en GtkGrid. Verskeie klaargemaakte uitlegbestuurders word voorgestel: GtkBinLayout vir eenvoudige houers met een kinderelement, GtkBoxLayout vir lineêr-belynde kinderelemente, GtkGridLayout vir die belyning van kinderelemente by 'n rooster, GtkFixedLayout vir arbitrêre posisionering van kinderelemente, GtkCustomLayout gebaseer op translating_CustomLayout-elemente hanteerders;
  • Publiek toeganklike voorwerpe vir bladsyvertoning van kinderelemente is by die GtkAssistant-, GtkStack- en GtkNotebook-legstukke gevoeg, waarna die nie-uitlegverwante kindereienskappe van hierdie legstukke oorgedra word. Aangesien alle bestaande kindereienskappe omgeskakel is na gewone eienskappe, uitleg-eienskappe of na bladsy-objekte geskuif is, is ondersteuning vir kindereienskappe heeltemal van GtkContainer verwyder;
  • Die kern GtkEntry-funksionaliteit is geskuif na 'n nuwe GtkText-legstuk, wat ook 'n verbeterde GtkEditable-redigeerkoppelvlak insluit. Alle bestaande data-invoer subklasse is hervorm as GtkEditable implementerings gebaseer op die nuwe GtkText widget;
  • Bygevoeg 'n nuwe GtkPasswordEntry-legstuk vir wagwoordinskrywingsvorms;
  • GtkWidgets het die vermoë bygevoeg om kinderelemente te transformeer met behulp van lineêre transformasiemetodes gespesifiseer via CSS of die gtk_widget_allocate-argument na GskTransform. Die gespesifiseerde kenmerk is reeds toegepas in die GtkFixed-legstuk;
  • Nuwe lys generasie modelle is bygevoeg: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel en GtkSingleSelection. In die toekoms beplan ons om ondersteuning vir lysmodelle by GtkListView te voeg;
  • GtkBuilder het die vermoë bygevoeg om voorwerpeienskappe plaaslik (inlyn) in te stel, in plaas van om skakels deur identifiseerder te gebruik;
  • Opdrag by gtk4-bouer-instrument gevoeg om UI-lêers van GTK 3 na GTK 4 om te skakel;
  • Ondersteuning vir sleuteltemas, tabelkieslyste en kombinasiebokse is gestaak. Die GtkInvisible-legstuk is verwyder.

    Bron: opennet.ru

Voeg 'n opmerking