3

xclient のフロントバッファからルートウィンドウのバックバッファにコピーするとき、compiz はどのメカニズムを使用しますか?

この手順が compiz ソースに見つからないようです。ルート バックバッファを更新するために xclient のウィンドウのフロントバッファが更新されるたびに呼び出す関数はありますか?

4

1 に答える 1

3

Copiz は、X Composite 拡張機能を使用して、ウィンドウをオフスクリーン ピックスマップにリダイレクトします。次に、GLX_EXT_texture_from_pixmap拡張機能を GLX/OpenGL に使用して、これらのオフスクリーン ピックスマップを OpenGL テクスチャに転送します。

構成のために、コンポジット対応 X サーバーは、ルート ウィンドウ (およびルート ウィンドウが親であるウィンドウ) とスクリーン セーバー レイヤーの間に配置される特別なコンポジット ウィンドウ レイヤーを提供します。Compiz は、その複合層にウィンドウを作成し、そのウィンドウの OpenGL コンテキストを作成し、OpenGL 描画コマンドを使用して構成を実行します。

OpenGL を使用しないコンポジターもあります。次に、サーバー側の構成を使用するか (Composite プロトコル自体をテストする場合を除いて、これはあまり役に立ちません)、XRender の描画方法を使用します。技術的には、X コアの描画方法も機能しますが、それらは変換とスケーリングをサポートしていません。通常、コンポジターに必要なもの。

コンポジターによってルート ウィンドウには何も描画されません。すべての構成は複合レイヤーに送られます。

于 2013-09-03T15:29:43.853 に答える