昨天,我们发布了 GTK+ 3.92.1,重庆市。由于距离上次 3.91 版本发布已有一段时间,这里简要介绍一下主要更改。
此版本是我们迈向 GTK+ 4 的又一个里程碑。虽然很多工作仍需完成,但此版本让我们初步了解了我们希望在 GTK+ 4 中实现的一些目标。
GSK
自上次发布以来,大部分工作都投入到了 GSK 中。Vulkan 渲染器现在接近完成,可以避免使用 cairo 回退。唯一缺失的部分是模糊阴影(诚然,这是一个重要的部分)。
自 3.91.2 版本以来的一大进步是,我们不再对所有文本使用 cairo 回退。相反,文本(在标签和条目中,遗憾的是尚未在文本视图中)被转换为文本节点。每个文本节点包含一个 PangoGlyphString
和一个 PangoFont
。Vulkan 渲染器使用字形缓存来避免为每一帧重新渲染字形。
Vulkan 渲染器的内部逻辑已重新设计为使用纹理而不是 cairo 表面作为中间结果,从而避免更多的 cairo 回退。
Vulkan 渲染器中获得支持的其他节点类型包括模糊、重复节点、混合模式和交叉淡化。在某些情况下,我们使用的着色器是非常简单的实现。欢迎帮助改进它们!
作为我们可以使用渲染节点的一个初步示例,我们为 GtkOverlay 实现了模糊底层功能。它的工作原理是将叠加层的“主子项”捕获为渲染节点,然后多次重复使用它,并进行正确的剪切,有时还会使用模糊节点。
检查器
为了帮助您探索 GSK,检查器现在会显示 Vulkan 信息,并且记录器会显示有关渲染节点的更多信息。
输入
在输入方面,事件获得了访问器,我们不再直接访问它们的字段。这是一个中间步骤,清理事件仍在进行中。我们已将传统的窗口小部件事件信号(例如 ::key-press-event
)移动到事件控制器,并且 GTK+ 中的大多数窗口小部件都已完全停止使用它们。
构建系统
我们已切换为专门使用 Meson 进行 GTK+ 构建,3.92.1 版本是第一个使用 Meson 的 dist 支持完成的版本。为了发布该版本,我们还必须将文档、测试套件和已安装的测试移植到使用 Meson。
仍然存在一些粗糙的边缘(我们无法 100% 正确地获取所有依赖项),但总的来说,Meson 对我们来说效果很好。
其余部分
当然,每个人都喜欢 Emoji,并且 GTK+ 3.22 中引入的相同颜色 Emoji 支持也在此版本中提供。除此之外,CSS 中的字体支持在 CSS3 font-variant 属性的支持下略有改进。
当然,这依赖于具有相应功能的字体。
尝试一下
借助 GTK+ 3.92.1,您应该可以轻松地自己尝试一下其中的一些功能。
如果您一直想参与 GTK+ 开发但从未找到合适的机会,那么现在是参与的好时机!