- 基于约束布局元素的方法(
约束布局 ),其中子元素的位置和大小是根据到边框的距离和其他元素的大小来确定的。 - 基于 Vulkan 图形 API 的渲染器,为 GTK 小部件中使用的许多资源密集型 CSS 元素实现着色器。
- 积分
葛兰素史克 (GTK 场景套件)能够通过 OpenGL 和 Vulkan 渲染图形场景。 - 渲染的组织已被修改 - 现在使用基于渲染节点的模型,而不是输出到缓冲区,其中输出以高级操作树的形式排列,由 GPU 使用 OpenGL 进行有效处理和伏尔甘。
-
资金 用于灵活处理输入焦点变化。 - 现代化的事件传递模型,在路由输入事件时不再需要子窗口。实现新模型的需要与更积极地使用动画效果相关,动画效果的渲染应该在不改变可见元素布局的情况下完成,因此也不需要子窗口。
- GDK API 已经过重新设计,着眼于使用 Wayland 协议和相关概念。 X11 和基于 Wayland 的功能已移至
单独的后端 . - 对 API 进行了重大清理,包括删除 GtkMenu、GtkMenuBar 和 GtkToolbar 类,转而使用 GMenu 和基于弹出菜单的选项。
- GtkTextView 和其他输入小部件有一个内置的撤消堆栈。
- 为具有自己的显示表面并且可以在第一级上单独工作的小部件添加了一个新的 GtkNative 类,而无需绑定到父小部件。
- 添加了新的小部件,包括 GtkPicture、GtkText、GtkPasswordEntry、GtkListView、GtkGridView、GtkColumnView 和 Emoji 显示小部件。
- 对于小部件的开发,引入了新的 GtkLayoutManager 对象,并实现了根据可见区域的大小控制元素布局的系统。 GtkLayoutManager 替换 GTK 容器(例如 GtkBox 和 GtkGrid)中的子属性。
- 事件处理已被简化,现在仅用于输入。其余事件被替换为单独的信号,例如,建议使用“GdkSurface::render”信号来代替输出事件,并且提供“GdkSurface::size-changed”来代替配置事件。
- 添加了新的抽象层 GdkPaintable,表示可以在任何位置以任何尺寸绘制的对象,而无需对布局层进行排序。
- Broadway 后端已被重写,以允许 GTK 库的输出在 Web 浏览器窗口中呈现。
- 与执行拖放操作相关的 API 已重新设计,包括建议的单独的 GdkDrag 和 GdkDrop 对象。
与之前的测试版本相比的改进:
- 针对残疾人士的 Accessibility API 的旧实现已被删除,取而代之的是基于规范的新版本
唱腔 和 GtkAccessible 小部件。 - 添加了对可编辑标签 (GtkEditableLabel) 的支持。
- 已经提出了新的列表模型来显示书签(GtkBookmarkList)、字符串(GtkStringList)和选择块(GtkBitset)。
- GtkTreeView 小部件具有编辑单元格的能力。
- GtkGridView 和 GtkListView 中的滚动实现得到了改进,添加了对自动滚动和自动展开的支持。
- GtkWidget 显着加快了各种操作的处理速度。
- 为 GtkFilterListModel 和 GtkSortListModel 添加了对增量滚动和过滤的支持。
- Inspector 添加了对检查列表模型的支持以及在对象之间直接导航的能力。
- 在GDK中,滚动历史已被保存,GdkDevice API已被清理,并且设备为主从设备的分离已被停止。
- 添加了适用于 macOS 的新 GDK 后端。
- 基于的新GDK渲染后端
角度 ,夹层 将 OpenGL ES 调用转换为 OpenGL、Direct3D 9/11、Desktop GL 和 Vulkan。
来源: opennet.ru