GTK4 上的 Sciter:这是龙
或者让 Sciter 在 GTK4 上原生运行...
首先:GTK4 是 GTK3 的深度重构,我们真的应该在这里讨论不同的产品...
要在 Wayland 上运行 Sciter 而不回退到 X11,就必须使用 GTK4。而 Wayland 一般都是 GPU 加速的,所以这也是努力的动力。
以下是我们对 Sciter/GTK4 的期望:
I. 窗口坐标消失
桌面上没有所谓的窗口位置。没有。
您再也无法查询窗口位置。也无法将窗口移动到某个位置,如桌面中心。也无法在会话之间恢复窗口位置。根本就没有,算了吧。
请进一步阅读 #1 、阅读 #2 和阅读 #3
因此,window.move(x,y,w,h) 将直接忽略 x 和 y 参数。
二. GPU 加速渲染GPU 加速渲染
GTK4 在 GPU 端使用光栅化技术进行矢量图形渲染。 矢量绘图就是在 GPU 端执行一系列命令以获得最终像素。
建议在 GTK4 上使用的主要绘制方法是使用 GtkSnapshot,它可以管理要在 GPU 上 "播放 "的图形指令列表。 从概念上讲,这与 Direct2D 中的 ID2D1CommandList 很相似。
虽然我们有了 GtkSnapshot,但古老的 Cairo 仍然有效。而且在 GTK4 上运行得相当不错。目前 Sciter/GTK4 使用 Cairo 进行渲染,但计划切换到 GtkSnapshot。
看起来 Wayland,尤其是 GtkSnapshot,是在 OpenGL 的基础上工作的,或者至少使用了相当接近的基元集。因此,在现代 Linux 桌面上,Sciter Skia/OpenGL 后端对于实现合理的性能并不那么重要。
待续...