这是新开发周期的第一个 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
在环境中。