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