Выпуск GTK 3.99.0 адзначыў гатоўнасць функцыянальнасці, запланаванай для GTK 4

Апублікаваны фінальны эксперыментальны выпуск фрэймворка GTK 3.99.0, У якім рэалізаваны ўсе магчымасці, запланаваныя для GTK 4. Галінка GTK 4 развіваецца ў рамках новага працэсу распрацоўкі, які спрабуе даць распрацоўнікам прыкладанняў стабільны і які падтрымліваецца на працягу некалькіх гадоў API, які можна выкарыстоўваць не асцерагаючыся, што кожныя паўгода давядзецца перарабляць прыкладанні з- за змены API у чарговай галінцы GTK. Рэліз GTK 4 плануюць выпусціць да канца года.

З найбольш істотных змен в GTK 4 можна адзначыць:

  • Метад раскладкі элементаў на аснове абмежаванняў (constraint layout), пры якім размяшчэнне і памер даччыных элементаў вызначаецца, адштурхваючыся ад адлегласці да межаў і памеру іншых элементаў.
  • Модуль адмалёўкі на базе графічнага API Vulkan, у якім рэалізаваны шэйдары для шматлікіх рэсурсаёмістых элементаў CSS, якія выкарыстоўваюцца ў віджэтах GTK.
  • інтэграцыя GSK (GTK Scene Kit) c магчымасцямі адмалёўкі графічных сцэн праз OpenGL і Vulkan.
  • Перагледжана арганізацыя адмалёўкі - замест высновы ў буфер зараз ужываецца мадэль на аснове вузлоў адмалёўкі (render nodes), пры якой выснова кампануецца ў форме дрэва высокаўзроўневых аперацый, эфектыўна апрацоўваных GPU пры дапамозе OpenGL і Vulkan.
  • Сродкі для гнуткай апрацоўкі змены фокусу ўводу.
  • Мадэрнізаваная мадэль дастаўкі падзей, якая дазваляе абыйсціся без subwindow пры маршрутызацыі падзей уводу. Неабходнасць рэалізацыі новай мадэлі злучана з больш актыўным выкарыстаннем анімацыйных эфектаў, адмалёўка якіх павінна вырабляцца без змены раскладкі бачных элементаў і, адпаведна, без subwindow.
  • Перапрацаваны API GDK з аглядкай на выкарыстанне пратаколу Wayland і злучаных з ім канцэпцый. Завязаныя на X11 і Wayland магчымасці перамешчаныя ў асобныя бэкэнды.
  • Праведзена вялікая чыстка API, у тым ліку выдаленыя класы GtkMenu, GtkMenuBar і GtkToolbar, замест якіх прапанаваны GMenu і варыянты на аснове ўсплываючых меню (popover).
  • У GtkTextView і іншыя фішкі ўводу ўбудаваны стэк для адкату змен (undo).
  • Дададзены новы клас GtkNative для віджэтаў, якія маюць уласную паверхню адлюстравання і здольных працаваць асобна на першым узроўні, без прывязкі да бацькоўскіх віджэтаў.
  • Дададзеныя новыя фішкі, у тым ліку GtkPicture, GtkText, GtkPasswordEntry, GtkListView, GtkGridView, GtkColumnView, а таксама віджэт для паказу Emoji.
  • Для распрацоўкі віджэтаў прадстаўлены новы аб'ект GtkLayoutManager з рэалізацыяй сістэмы кіравання раскладкай элементаў у залежнасці ад памеру бачнай вобласці. GtkLayoutManager прыйшоў на змену даччыным уласцівасцям у кантэйнерах GTK, такім як GtkBox і GtkGrid.
  • Спрошчана апрацоўка падзей, якія зараз выкарыстоўваюцца толькі для ўводу. Астатнія падзеі заменены на асобныя сігналы, напрыклад, замест падзей вываду прапанаваны сігнал "GdkSurface::render", замест падзей налады - "GdkSurface::size-changed".
  • Дададзены новы ўзровень абстракцыі GdkPaintable, які прадстаўляе аб'екты, якія можна намаляваць дзе заўгодна з любым памерам, без неабходнасці выканання сартавання layout-пластоў.
  • Перапісаны бэкенд Broadway, які дазваляе адмалёўваць выснову бібліятэкі GTK у акне web-браўзэра.
  • Перапрацаваны API, звязаны з выкананнем аперацый Drag-and-Drop, у тым ліку прапанаваны паасобныя аб'екты GdkDrag і GdkDrop.

Паляпшэнні ў параўнанні з мінулым тэставым выпускам:

  • Выдалена старая рэалізацыя Аccessibility API для людзей з абмежаванымі магчымасцямі, замест якой прапанаваны новы варыянт на базе спецыфікацыі ARIA і фішкі GtkAccessible.
  • Дададзена падтрымка рэдагуемых пазнак (GtkEditableLabel).
  • Прапанаваны новыя мадэлі спісаў для адлюстравання закладак (GtkBookmarkList), радкоў (GtkStringList) і блокаў выбару (GtkBitset).
  • У віджэце GtkTreeView рэалізавана магчымасць рэдагавання вочак.
  • У GtkGridView і GtkListView палепшана рэалізацыя пракруткі, дададзена падтрымка аўтапракруткі і аўтараскрыцця.
  • У GtkWidget значна паскорана апрацоўка розных дзеянняў.
  • У GtkFilterListModel і GtkSortListModel дададзена падтрымка інкрыментальнай пракруткі і фільтрацыі.
  • У Inspector дададзена падтрымка інспектавання мадэляў спісаў і магчымасць прамой навігацыі паміж аб'ектамі.
  • У GDK забяспечана захаванне гісторыі пракруткі, праведзена чыстка API GdkDevice, спынена падзел прылад на master і slave.
  • Дададзены новы GDK-бэкенд для macOS.
  • Для Windows прапанаваны новы GDK-бэкенд адмалёўкі на базе КУТ, праслойкі для трансляцыі выклікаў OpenGL ES у OpenGL, Direct3D 9/11, Desktop GL і Vulkan.

Крыніца: opennet.ru

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