GTK 3.96, eksperimentinis GTK 4 leidimas, paskelbtas

10 mėnesių po praeities bandomasis leidimas pateiktas GTK 3.96, naujas eksperimentinis būsimos stabilios GTK 4 laidos leidimas. GTK 4 filialas kuriamas kaip naujo kūrimo proceso dalis, kuria bandoma programų kūrėjams kelerius metus suteikti stabilią ir palaikomą API, kurią būtų galima naudoti be baimės. kas šešis mėnesius dėl API pakeitimo kitame GTK filiale reikės perrašyti paraišką. Kol GTK 4 nebus visiškai stabilizuotas, vartotojams siūlomas programas rekomenduojama ir toliau kurti naudojant šaką GTK 3.24.

pagrindinis pokyčiai GTK 3.96:

  • API GSK (GTK scenų rinkinys), kuris suteikia grafinių scenų atvaizdavimą per OpenGL ir Vulkan, buvo atliktas darbas su klaidomis, kurias tapo lengviau nustatyti dėl naujojo derinimo įrankio gtk4-node-editor, kuris leidžia įkelti ir rodyti atvaizdavimo mazgas serijiniu formatu (gali būti išsaugotas tikrinimo režimu GTK inspektorius), taip pat palyginkite atvaizdavimo rezultatus, kai naudojamos skirtingos užpakalinės programos;

    GTK 3.96, eksperimentinis GTK 4 leidimas, paskelbtas

  • 3D transformacijos galimybės buvo padidintos iki tokio lygio, kuris leidžia sukurti animacijos efektus, tokius kaip besisukantis kubas;

    GTK 3.96, eksperimentinis GTK 4 leidimas, paskelbtas

  • Visiškai perrašytas Brodvėjaus GDK užpakalinė programa, skirta pateikti GTK bibliotekos išvestį žiniatinklio naršyklės lange. Senasis Brodvėjaus diegimas netilpo į GTK 4 siūlomus atvaizdavimo metodus (vietoj išvesties į buferį, dabar jis naudoja modelį, pagrįstą atvaizdavimo mazgais, kur išvestis sudaroma aukšto lygio operacijų medžio pavidalu, efektyviai apdorojamas GPU naudojant OpenGL ir Vulkan).
    Naujoji Brodvėjaus parinktis konvertuoja pateikimo mazgus į DOM mazgus su CSS stiliais, kad būtų galima pateikti sąsają naršyklėje. Kiekviena nauja ekrano būsena apdorojama kaip DOM medžio pakeitimas, palyginti su ankstesne būsena, o tai sumažina nuotoliniam klientui perduodamų duomenų dydį. 3D transformacijos ir grafiniai efektai įgyvendinami per CSS transformacijos savybę;

  • GDK toliau diegia API, sukurtas atsižvelgiant į „Wayland“ protokolą, ir išvalo X11 pagrįstas API arba perkelia jas į atskirą X11 vidinę sistemą. Padaryta pažanga siekiant atsisakyti vaikų paviršių ir pasaulinių koordinačių naudojimo. GDK_SURFACE_SUBSURFACE palaikymas pašalintas iš GDK;
  • Buvo tęsiamas kodo, susieto su vilkimo ir numetimo operacijų vykdymu, pertvarkymas, įskaitant siūlomus atskirus GdkDrag ir GdkDrop objektus;
  • Įvykių tvarkymas buvo supaprastintas ir dabar naudojamas tik įvestims. Likę įvykiai pakeičiami atskirais signalais, pavyzdžiui, vietoj išvesties įvykių siūlomas signalas „GdkSurface::render“, vietoje konfigūracijos įvykių – „GdkSurface::size-changed“, vietoje susiejimo įvykių – „GdkSurface: :mapped“, vietoj gdk_event_handler_set() - „GdkSurface::event“;
  • „Wayland“ GDK programinė įranga pridėjo portalo sąsajos palaikymą, leidžiančią pasiekti „GtkSettings“ nustatymus. Norint dirbti su įvesties metodais, buvo pasiūlytas teksto įvesties nestabilus v3 protokolo plėtinys;
  • Valdiklių kūrimui pristatomas naujas GtkLayoutManager objektas su įdiegta elementų išdėstymo valdymo sistema, priklausomai nuo matomos srities išdėstymo. GtkLayoutManager pakeičia antrines ypatybes GTK konteineriuose, pvz., GtkBox ir GtkGrid. Siūlomi keli paruošti išdėstymo tvarkytuvai: GtkBinLayout paprastiems konteineriams su vienu antriniu elementu, GtkBoxLayout tiesiškai išlygiuotiems antriniams elementams, GtkGridLayout antriniams elementams lygiuoti su tinkleliu, GtkFixedLayout savavališkai antrinių elementų išdėstymui, GtkCustomLayout pagal dydį tradicinių elementų vertimui_locate prižiūrėtojai;
  • Viešai pasiekiami antrinių elementų puslapio rodymo objektai buvo įtraukti į valdiklius GtkAssistant, GtkStack ir GtkNotebook, į kuriuos perkeliamos su išdėstymu nesusijusios antrinės šių valdiklių savybės. Kadangi visos esamos antrinės savybės buvo konvertuotos į įprastas ypatybes, išdėstymo ypatybes arba perkeltos į puslapio objektus, antrinių ypatybių palaikymas iš GtkContainer buvo visiškai pašalintas;
  • Pagrindinė GtkEntry funkcija buvo perkelta į naują GtkText valdiklį, kuriame taip pat yra patobulinta GtkEditable redagavimo sąsaja. Visi esami duomenų įvesties poklasiai buvo perdaryti į GtkEditable įgyvendinimus, remiantis naujuoju GtkText valdikliu;
  • Pridėtas naujas GtkPasswordEntry valdiklis slaptažodžių įvedimo formoms;
  • GtkWidgets pridėjo galimybę transformuoti antrinius elementus naudojant tiesinius transformavimo metodus, nurodytus per CSS arba gtk_widget_allocate argumentą į GskTransform. Nurodyta funkcija jau pritaikyta valdiklyje GtkFixed;
  • Pridėta naujų sąrašų kartos modelių: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel ir GtkSingleSelection. Ateityje planuojame pridėti sąrašų modelių palaikymą prie GtkListView;
  • GtkBuilder pridėjo galimybę nustatyti objekto ypatybes vietoje (įterptoje), o ne naudoti nuorodas pagal identifikatorių;
  • Pridėta komanda gtk4-builder-tool, skirta konvertuoti UI failus iš GTK 3 į GTK 4;
  • Pagrindinių temų, lentelių meniu ir kombinuotųjų langelių palaikymas buvo nutrauktas. „GtkInvisible“ valdiklis pašalintas.

    Šaltinis: opennet.ru

Добавить комментарий