GTK 3.96,GTK 4 的实验版本,已发布

10个月后 过去 测试发布 提交 GTK 3.96是即将推出的 GTK 4 稳定版本的新实验版本。GTK 4 分支是作为新开发流程的一部分而开发的,该流程试图为应用程序开发人员提供稳定且受支持的 API,可以使用多年而无需担心由于下一个 GTK 分支中的 API 发生变化,必须每六个月重写一次应用程序。 在 GTK 4 完全稳定之前,建议继续使用该分支构建提供给用户的应用程序 GTK 3.24.

变化 在 GTK 3.96 中:

  • 在 API 葛兰素史克 (GTK 场景套件),它通过 OpenGL 和 Vulkan 提供图形场景的渲染,已经完成了错误处理工作,由于新的调试工具 gtk4-node-editor,这些错误变得更容易识别,该工具允许您加载和显示序列化格式的渲染节点(可以在检查模式GTK检查器中保存),并且还可以比较使用不同后端时的渲染结果;

    GTK 3.96,GTK 4 的实验版本,已发布

  • 3D 变换功能已达到允许您创建旋转立方体等动画效果的水平;

    GTK 3.96,GTK 4 的实验版本,已发布

  • 充分 重写 Broadway GDK 后端设计用于在 Web 浏览器窗口中呈现 GTK 库输出。 旧的 Broadway 实现不适合 GTK 4 中提出的渲染方法(它现在使用基于渲染节点的模型,而不是输出到缓冲区,其中输出以高级操作树的形式组成, GPU 使用 OpenGL 和 Vulkan 进行有效处理)。
    新的 Broadway 选项将渲染节点转换为具有 CSS 样式的 DOM 节点,以便在浏览器中渲染界面。 每个新的屏幕状态都被处理为 DOM 树相对于先前状态的更改,这减少了传输到远程客户端的数据大小。 3D变换和图形效果是通过CSS的transform属性实现的;

  • GDK 继续实现以 Wayland 协议设计的 API,并清理基于 X11 的 API 或将它们移至单独的 X11 后端。 不再使用子曲面和全局坐标的工作取得了进展。 GDK 中删除了对 GDK_SURFACE_SUBSURFACE 的支持;
  • 继续重构与执行拖放操作相关的代码,包括建议单独的 GdkDrag 和 GdkDrop 对象;
  • 事件处理已被简化,现在仅用于输入。 其余事件被替换为单独的信号,例如,建议使用信号“GdkSurface::render”代替输出事件,而不是配置事件 - “GdkSurface::size-changed”,而不是映射事件 - “GdkSurface: :mapped”,而不是 gdk_event_handler_set() - “GdkSurface::event”;
  • Wayland 的 GDK 后端添加了对用于访问 GtkSettings 设置的门户界面的支持。 为了与输入法配合使用,已提议支持 text-input-unstable-v3 协议扩展;
  • 为了开发小部件,引入了一个新的 GtkLayoutManager 对象,并实现了一个系统,用于根据可见区域的布局控制元素的布局。 GtkLayoutManager 替换 GTK 容器(例如 GtkBox 和 GtkGrid)中的子属性。 提出了几种现成的布局管理器:GtkBinLayout 用于具有一个子元素的简单容器,GtkBoxLayout 用于线性对齐子元素,GtkGridLayout 用于将子元素与网格对齐,GtkFixedLayout 用于任意定位子元素,GtkCustomLayout 用于基于 size_allocate 转换传统元素处理程序;
  • 用于子元素页面显示的公共可访问对象已添加到 GtkAssistant、GtkStack 和 GtkNotebook 小部件中,这些小部件的非布局相关子属性将传输到这些小部件。 由于所有现有的子属性都已转换为常规属性、布局属性或移至页面对象,因此已从 GtkContainer 中完全删除了对子属性的支持;
  • 核心 GtkEntry 功能已移至新的 GtkText 小部件,其中还包括增强的 GtkEditable 编辑界面。 所有现有的数据输入子类都已基于新的 GtkText 小部件重新制作为 GtkEditable 实现;
  • 为密码输入表单添加了新的 GtkPasswordEntry 小部件;
  • GtkWidgets 添加了使用通过 CSS 或 GskTransform 的 gtk_widget_allocate 参数指定的线性变换方法来变换子元素的功能。 指定的功能已经应用在 GtkFixed 小部件中;
  • 添加了新的列表生成模型:GtkMapListModel、GtkSliceListModel、GtkSortListModel、GtkSelectionModel 和 GtkSingleSelection。 未来我们计划在 GtkListView 中添加对列表模型的支持;
  • GtkBuilder 添加了在本地(内联)设置对象属性的功能,而不是通过标识符使用链接;
  • 向 gtk4-builder-tool 添加了命令,用于将 UI 文件从 GTK 3 转换为 GTK 4;
  • 对关键主题、表格菜单和组合框的支持已停止。 GtkInvisible 小部件已被删除。

    来源: opennet.ru

添加评论