GTK 3.96, eksperimento nga pagpagawas sa GTK 4, gipatik

10 ka bulan pagkahuman sa nangagi pagsulay nga pagpagawas gipresentar GTK 3.96, usa ka bag-ong eksperimento nga pagpagawas sa umaabot nga lig-on nga pagpagawas sa GTK 4. Ang GTK 4 nga sanga gipalambo isip kabahin sa usa ka bag-ong proseso sa pag-uswag nga misulay sa paghatag sa mga developers sa aplikasyon og usa ka lig-on ug gisuportahan nga API sulod sa pipila ka mga tuig nga mahimong magamit nga walay kahadlok nga kinahanglan nga isulat pag-usab ang aplikasyon matag unom ka bulan tungod sa pagbag-o sa API sa sunod nga sanga sa GTK. Hangtud nga ang GTK 4 hingpit nga mapalig-on, girekomenda nga ang mga aplikasyon nga gitanyag sa mga tiggamit magpadayon sa pagtukod gamit ang sanga GTK 3.24.

nag-unang mga pagbag-o sa GTK 3.96:

  • Sa API GSK (GTK Scene Kit), nga naghatag og rendering sa mga graphic nga talan-awon pinaagi sa OpenGL ug Vulkan, ang trabaho nahimo sa mga sayop, nga nahimong mas sayon ​​sa pag-ila salamat sa bag-ong debugging tool gtk4-node-editor, nga nagtugot kanimo sa pagkarga ug pagpakita sa rendering node sa serialized format (mahimong i-save sa inspection mode GTK inspector), ug itandi usab ang mga resulta sa rendering kung mogamit ug lain-laing mga backend;

    GTK 3.96, eksperimento nga pagpagawas sa GTK 4, gipatik

  • Ang mga katakus sa pagbag-o sa 3D gidala sa lebel nga nagtugot kanimo sa paghimo og mga epekto sa animation sama sa usa ka nagtuyok nga cube;

    GTK 3.96, eksperimento nga pagpagawas sa GTK 4, gipatik

  • Bug-os gisulat pag-usab Ang backend sa Broadway GDK gidesinyo sa paghimo sa GTK library output sa usa ka web browser window. Ang daan nga pagpatuman sa Broadway wala mohaum sa mga pamaagi sa paghubad nga gisugyot sa GTK 4 (imbes nga output ngadto sa usa ka buffer, kini karon naggamit sa usa ka modelo base sa render nodes, diin ang output gilangkuban sa porma sa usa ka kahoy sa taas nga lebel nga mga operasyon, episyente nga giproseso sa GPU gamit ang OpenGL ug Vulkan).
    Ang bag-ong opsyon sa Broadway nag-convert sa mga render node ngadto sa DOM nodes nga adunay CSS styles para sa pag-render sa interface sa browser. Ang matag bag-ong estado sa screen giproseso isip usa ka pagbag-o sa punoan sa DOM kalabot sa miaging estado, nga nagpamenos sa gidak-on sa datos nga gipasa sa hilit nga kliyente. Ang mga pagbag-o sa 3D ug mga graphic nga epekto gipatuman pinaagi sa CSS transform property;

  • Ang GDK nagpadayon sa pagpatuman sa mga API nga gidisenyo uban sa Wayland protocol sa hunahuna, ug paglimpyo sa X11-based nga mga API o pagbalhin niini ngadto sa usa ka bulag nga X11 backend. Adunay pag-uswag sa trabaho aron mahilayo gikan sa paggamit sa mga ibabaw sa bata ug mga koordinasyon sa kalibutan. Suporta alang sa GDK_SURFACE_SUBSURFACE gikuha gikan sa GDK;
  • Ang refactoring sa code nga nalangkit sa pagbuhat sa Drag-and-Drop nga mga operasyon nagpadayon, lakip ang gisugyot nga bulag nga GdkDrag ug GdkDrop nga mga butang;
  • Ang pagdumala sa panghitabo gipasayon ​​ug gigamit na lang para sa input. Ang nahabilin nga mga panghitabo gipulihan sa bulag nga mga signal, pananglitan, imbes nga mga panghitabo sa output, ang signal nga "GdkSurface:: render" gisugyot, imbes nga mga panghitabo sa pag-configure - "GdkSurface:: gibag-o ang gidak-on", imbes nga mga panghitabo sa pagmapa - "GdkSurface: :mapped”, imbes nga gdk_event_handler_set() - "GdkSurface::event";
  • Ang backend sa GDK para sa Wayland midugang og suporta para sa interface sa portal para sa pag-access sa mga setting sa GtkSettings. Aron magtrabaho sa mga pamaagi sa pag-input, gisugyot ang suporta alang sa extension sa text-input-unstable-v3 protocol;
  • Alang sa pag-uswag sa mga widget, usa ka bag-ong butang nga GtkLayoutManager ang gipaila uban ang pagpatuman sa usa ka sistema alang sa pagkontrol sa layout sa mga elemento depende sa layout sa makita nga lugar. Gipulihan sa GtkLayoutManager ang mga kabtangan sa bata sa mga sulud sa GTK sama sa GtkBox ug GtkGrid. Gisugyot ang pila ka andam nga layout managers: GtkBinLayout para sa yano nga mga sudlanan nga adunay usa ka bata nga elemento, GtkBoxLayout alang sa linearly aligned nga mga elemento sa bata, GtkGridLayout alang sa pag-align sa mga elemento sa bata sa usa ka grid, GtkFixedLayout alang sa arbitraryong pagpahimutang sa mga elemento sa bata, GtkCustomLayout nga gibase sa tradisyunal nga mga elemento sa translating_locate mga tigdumala;
  • Ang mga butang nga ma-access sa publiko para sa pagpasundayag sa panid sa mga elemento sa bata gidugang ngadto sa mga widget sa GtkAssistant, GtkStack ug GtkNotebook, diin ang mga kabtangan sa bata nga wala'y kalabutan sa Layout niini nga mga widget gibalhin. Tungod kay ang tanang anaa na nga mga propyedad sa bata nakabig na ngadto sa regular nga mga propyedad, mga propyedad sa layout, o gibalhin ngadto sa mga butang sa panid, ang suporta alang sa mga propyedad sa bata hingpit nga gikuha gikan sa GtkContainer;
  • Ang kinauyokan nga GtkEntry functionality gibalhin ngadto sa bag-ong GtkText widget, nga naglakip usab sa usa ka gipalambo nga GtkEditable editing interface. Ang tanang kasamtangan nga data input subclasses gihimo na usab isip GtkEditable nga mga pagpatuman base sa bag-ong GtkText widget;
  • Gidugang ang bag-ong widget sa GtkPasswordEntry alang sa mga porma sa pagsulod sa password;
  • Gidugang sa GtkWidgets ang abilidad sa pagbag-o sa mga elemento sa bata gamit ang linear nga mga pamaagi sa pagbag-o nga gitino pinaagi sa CSS o ang gtk_widget_allocate nga argumento sa GskTransform. Ang gipiho nga bahin gigamit na sa GtkFixed widget;
  • Ang mga bag-ong modelo sa henerasyon sa listahan gidugang: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel ug GtkSingleSelection. Sa umaabot nagplano kami nga idugang ang suporta alang sa mga modelo sa lista sa GtkListView;
  • Gidugang sa GtkBuilder ang abilidad sa pagtakda sa mga kabtangan sa butang sa lokal (inline), imbes nga gamiton ang mga link pinaagi sa identifier;
  • Gidugang nga sugo sa gtk4-builder-tool aron ma-convert ang mga file sa UI gikan sa GTK 3 ngadto sa GTK 4;
  • Ang suporta alang sa mga importanteng tema, tabular nga mga menu, ug combo boxes gihunong na. Ang GtkInvisible widget gikuha na.

    Source: opennet.ru

Idugang sa usa ka comment