这是新开发周期的第一个 GTK 快照。最近有很多事情都进展顺利,所以值得花一些时间来了解一下新内容,以及您可以在 4.12 中看到的内容。
列表视图改进
GtkListView、GtkColumnView 和 GtkGridView 小部件系列是 GTK 4 中的重大新增功能之一。它们旨在取代 GtkTreeView,但到目前为止,这显然仍然有点不切实际。
在 GTK 4.10 中,我们终于迈出了将 GtkFileChooser 从树视图移植出去的重要一步——这表明列表视图已经准备好投入使用了。下一个 GTK 4 版本将带来一些缺失的功能
- 最后,修复了长期存在的滚动错误
- 更好的键盘导航,具有可自定义的制表符行为
- 焦点控制
- 程序化滚动
- 分节,也许
其中一些已经在 4.11.1 中可用。我们甚至设法将滚动修复向后移植到 4.10.1。
更好的纹理
纹理在 GTK 的 GL 渲染器中经常使用——用于图标和图像、字形以及中间的离屏渲染。大多数时候,我们不必考虑它们,它们只是工作。但是,如果纹理是您应用程序的主要内容,例如在图像查看器中,则您需要对其进行更多控制,并且重要的是,极端情况可以正常工作。
在 GTK 4.10 中,我们引入了一个 GskTextureScale 节点,它使应用程序可以控制在放大或缩小纹理时应用的过滤。这使应用程序可以使用 GSK_SCALING_FILTER_TRILINEAR 请求使用多级纹理贴图。当有利时,GTK 4.12 将自动使用多级纹理贴图。
我们最近探索的一个极端情况是纹理切片。每当纹理大于 GL 堆栈支持时,GSK 会将其分成更小的切片,并为每个切片使用单独的 GL 纹理。现代 GPU 支持巨大的纹理(在我的系统上,最大纹理大小为 16384),这意味着切片支持在实践中很少被测试,并且我们的单元测试也没有很好地覆盖它。
我们添加了对人为限制纹理大小(使用 GSK_MAX_TEXTURE_SIZE 环境变量)的支持,并很快发现我们的纹理切片支持需要一些改进。它在 4.12 中会工作得更好。
分数缩放
它在 4 月 1 日发布,但这不是一个玩笑。
我们已在 Wayland 后端添加了对实验性的 wp_fractional_scale_manager_v1 协议的支持,并使用 wp_viewporter 协议告知合成器有关缓冲区正在使用的缩放比例。很高兴这很容易适应我们的渲染堆栈,但不要期望奇迹。它在 cairo 渲染器上运行良好(正如您在视频中看到的那样),但我们仍然认为它在 GL 和 Vulkan 渲染器上是实验性的。
要使用 GL 渲染器尝试分数缩放,请设置
GDK_DEBUG=gl-fractional
在环境中。