GTK 3.96, експериментално издание на GTK 4, објавено

10 месеци потоа на минатото тест ослободување презентирани GTK 3.96, ново експериментално издание на претстојното стабилно издание на GTK 4. Филијалата GTK 4 се развива како дел од новиот развоен процес кој се обидува да им обезбеди на развивачите на апликации стабилен и поддржан API за неколку години што може да се користи без страв мора да се препишува апликацијата на секои шест месеци поради промена на API во следната гранка на GTK. Додека GTK 4 не се стабилизира целосно, се препорачува апликациите што им се нудат на корисниците да продолжат да се градат со помош на филијалата GTK 3.24.

Главните промени во GTK 3.96:

  • Во API GSK (GTK Scene Kit), кој обезбедува рендерирање на графички сцени преку OpenGL и Vulkan, се работи на грешки, кои станаа полесни за идентификување благодарение на новата алатка за дебагирање gtk4-node-editor, која ви овозможува да ја вчитате и прикажувате јазол за рендерирање во сериски формат (може да се зачува во режим на инспекција GTK инспектор), а исто така да се споредат резултатите од рендерирање кога се користат различни задни делови;

    GTK 3.96, експериментално издание на GTK 4, објавено

  • Можностите за 3D трансформација се доведени до ниво што ви овозможува да креирате анимациски ефекти како што е ротирачка коцка;

    GTK 3.96, експериментално издание на GTK 4, објавено

  • Целосно препишани Бродвеј GDK заднина дизајнирана да прикажува излез од библиотеката GTK во прозорец на веб-прелистувач. Старата Бродвејска имплементација не се вклопува во методите за рендерирање предложени во GTK 4 (наместо излез во бафер, сега користи модел базиран на јазли за рендерирање, каде што излезот е составен во форма на дрво на операции на високо ниво, ефикасно обработени од графичкиот процесор користејќи OpenGL и Vulkan).
    Новата опција Бродвеј ги конвертира рендерските јазли во DOM јазли со CSS стилови за рендерирање на интерфејсот во прелистувачот. Секоја нова состојба на екранот се обработува како промена на дрвото DOM во однос на претходната состојба, што ја намалува големината на податоците што се пренесуваат на далечинскиот клиент. 3D трансформациите и графичките ефекти се имплементирани преку својството CSS transform;

  • GDK продолжува да имплементира API дизајнирани со протоколот Wayland на ум и да ги чисти API-и базирани на X11 или да ги преместува во посебен заден X11. Има напредок во работата за оддалечување од употребата на детски површини и глобални координати. Поддршката за GDK_SURFACE_SUBSUFACE е отстранета од GDK;
  • Продолжи рефакторирањето на кодот поврзан со извршувањето на операциите „Повлечете и пушти“, вклучувајќи ги предложените посебни објекти GdkDrag и GdkDrop;
  • Ракувањето со настани е поедноставено и сега се користи само за внесување. Останатите настани се заменуваат со посебни сигнали, на пример, наместо излезни настани, се предлага сигналот „GdkSurface::render“, наместо конфигурациските настани - „GdkSurface::size-changed“, наместо настаните за мапирање - „GdkSurface: :mapped“, наместо gdk_event_handler_set() - „GdkSurface::event“;
  • Заднината на GDK за Wayland додаде поддршка за интерфејс на порталот за пристап до поставките на GtkSettings. За работа со методите за внесување, предложена е поддршка за проширувањето на протоколот text-input-unstable-v3;
  • За развој на виџети се воведува нов објект GtkLayoutManager со имплементација на систем за контрола на распоредот на елементите во зависност од распоредот на видливата област. GtkLayoutManager ги заменува детските својства во GTK контејнерите како што се GtkBox и GtkGrid. Предложени се неколку готови менаџери за распоред: GtkBinLayout за едноставни контејнери со еден детски елемент, GtkBoxLayout за линеарно порамнети детски елементи, GtkGridLayout за порамнување на детските елементи на мрежа, GtkFixedLayout за произволно позиционирање на детски елементи, Gtk for trans_latomLayout традиционални елементи базирани на големина. ракувачи;
  • Јавно достапни објекти за прикажување на страници на дет-елементи се додадени во графичките контроли GtkAssistant, GtkStack и GtkNotebook, на кои се префрлени детските својства на овие додатоци кои не се поврзани со Layout. Бидејќи сите постоечки детски својства се конвертирани во редовни својства, својства на распоред или преместени во објекти на страницата, поддршката за детските својства е целосно отстранета од GtkContainer;
  • Основната функционалност на GtkEntry е преместена во нов додаток GtkText, кој исто така вклучува подобрен интерфејс за уредување GtkEditable. Сите постоечки подкласи за внесување податоци се преправени како GtkEditable имплементации врз основа на новиот додаток GtkText;
  • Додаден е нов додаток GtkPasswordEntry за формулари за внесување лозинка;
  • GtkWidgets додаде можност за трансформација на дет-елементи користејќи методи на линеарна трансформација специфицирани преку CSS или аргументот gtk_widget_allocate во GskTransform. Наведената карактеристика е веќе применета во графичката контрола GtkFixed;
  • Додадени се нови модели за генерирање на листи: GtkMapListModel, GtkSliceListModel, GtkSortListModel, GtkSelectionModel и GtkSingleSelection. Во иднина планираме да додадеме поддршка за модели на листи на GtkListView;
  • GtkBuilder ја додаде можноста за поставување на својствата на објектот локално (инлајн), наместо да користи врски по идентификатор;
  • Додадена е команда на gtk4-builder-алатка за конвертирање на датотеки со интерфејс од GTK 3 во GTK 4;
  • Поддршката за клучните теми, табеларните менија и комбо кутиите е прекината. Виџетот GtkInvisible е отстранет.

    Извор: opennet.ru

Додадете коментар