Апублікаваны 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 inspector), а таксама параўнаць вынік адмалёўкі пры ўжыванні розных бэкэндаў;

    Апублікаваны GTK 3.96, эксперыментальны выпуск GTK 4

  • Магчымасці 3D-трансфармацыі даведзены да ўзроўню, які дазваляе ствараць такія анімацыйныя эфекты, як які верціцца куб;

    Апублікаваны GTK 3.96, эксперыментальны выпуск GTK 4

  • цалкам перапісаны GDK-бэкенд Broadway, прызначаны для адмалёўкі вываду бібліятэкі GTK у акне web-браўзэра. Старая рэалізацыя Broadway не ўкладвалася ў прапанаваныя ў GTK 4 метады адмалёўкі (замест высновы ў буфер зараз ужываецца мадэль на аснове вузлоў адмалёўкі (render nodes), пры якой выснова кампануецца ў форме дрэва высокаўзроўневых аперацый, эфектыўна апрацоўваных GPU пры дапамозе OpenGL і Vulkan).
    Новы варыянт Broadway пераўтворыць вузлы адмалёўкі ў DOM-вузлы са стылямі CSS для вываду інтэрфейсу ў браўзэры. Кожны новы стан экрана апрацоўваецца як змена DOM-дрэва адносна мінулага стану, што дазваляе скараціць памер перадаюцца выдаленаму кліенту дадзеных. 3D-пераўтварэнні і графічныя эфекты рэалізуюцца праз CSS-уласцівасць transform;

  • У GDK працягнута ўкараненне API, распрацаваных з аглядкай на выкарыстанне пратаколу Wayland, і правядзенне чысткі API, завязаных на X11, ці іх перасоўванне ў асобны бэкэнд X11. Адзначаецца прагрэс выканання работы па доглядзе прымянення даччыных паверхняў і глабальных каардынат. З GDK выдалена падтрымка GDK_SURFACE_SUBSURFACE;
  • Працягнуты рэфактарынг кода, звязанага з выкананнем аперацый Drag-and-Drop, у тым ліку прапанаваны паасобныя аб'екты GdkDrag і GdkDrop;
  • Спрошчана апрацоўка падзей, якія зараз выкарыстоўваюцца толькі для ўводу. Астатнія падзеі заменены на асобныя сігналы, напрыклад, замест падзей вываду прапанаваны сігнал "GdkSurface::render", замест падзей налады - "GdkSurface::size-changed", замест падзей супастаўлення - "GdkSurface::mapped", замест gdk_event_handler_set() - "GdkSurface::event";
  • У GDK-бэкенд для Wayland дададзеная падтрымка portal-інтэрфейсу для доступу да налад GtkSettings. Для працы з метадамі ўводу прапанавана падтрымка пашырэння пратаколу text-input-unstable-v3;
  • Для распрацоўкі віджэтаў прадстаўлены новы аб'ект GtkLayoutManager з рэалізацыяй сістэмы кіравання раскладкай элементаў у залежнасці ад размену бачнай вобласці. GtkLayoutManager прыйшоў на змену даччыным уласцівасцям у кантэйнерах GTK, такіх як GtkBox і GtkGrid. Прапанавана некалькі гатовых мэнэджараў раскладкі: GtkBinLayout для простых кантэйнераў з адным даччыным элементам, GtkBoxLayout для лінейна выраўнаваных даччыных элементаў, GtkGridLayout для выраўноўвання даччыных элементаў па сетцы, GtkFixedLayout для адвольнага пазіцыянавання даччыных работ te;
  • У фішкі 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 дададзена магчымасць задання ўласцівасцяў аб'ектаў па месцы (inline), замест выкарыстання спасылак па ідэнтыфікатару;
  • У gtk4-builder-tool дададзена каманда для пераўтварэння UI-файлаў з GTK 3 у GTK 4;
  • Спынена падтрымка ключавых тэм афармлення (key theme), укладачных меню (tabular menu) і камбінаваных блокаў (combo box). Выдалены віджэт GtkInvisible.

    Крыніца: opennet.ru

Дадаць каментар