GTK4 上的 Sciter:這是龍
或者讓 Sciter 在 GTK4 上原生運行...
首先:GTK4 是 GTK3 的深度重構(gòu),我們真的應(yīng)該在這里討論不同的產(chǎn)品...
要在 Wayland 上運行 Sciter 而不回退到 X11,就必須使用 GTK4。而 Wayland 一般都是 GPU 加速的,所以這也是努力的動力。
以下是我們對 Sciter/GTK4 的期望:
I. 窗口坐標(biāo)消失
桌面上沒有所謂的窗口位置。沒有。
您再也無法查詢窗口位置。也無法將窗口移動到某個位置,如桌面中心。也無法在會話之間恢復(fù)窗口位置。根本就沒有,算了吧。
請進(jìn)一步閱讀 #1 、閱讀 #2 和閱讀 #3
因此,window.move(x,y,w,h) 將直接忽略 x 和 y 參數(shù)。
二. GPU 加速渲染GPU 加速渲染
GTK4 在 GPU 端使用光柵化技術(shù)進(jìn)行矢量圖形渲染。 矢量繪圖就是在 GPU 端執(zhí)行一系列命令以獲得最終像素。
建議在 GTK4 上使用的主要繪制方法是使用 GtkSnapshot,它可以管理要在 GPU 上 "播放 "的圖形指令列表。 從概念上講,這與 Direct2D 中的 ID2D1CommandList 很相似。
雖然我們有了 GtkSnapshot,但古老的 Cairo 仍然有效。而且在 GTK4 上運行得相當(dāng)不錯。目前 Sciter/GTK4 使用 Cairo 進(jìn)行渲染,但計劃切換到 GtkSnapshot。
看起來 Wayland,尤其是 GtkSnapshot,是在 OpenGL 的基礎(chǔ)上工作的,或者至少使用了相當(dāng)接近的基元集。因此,在現(xiàn)代 Linux 桌面上,Sciter Skia/OpenGL 后端對于實現(xiàn)合理的性能并不那么重要。
待續(xù)...