Solaris X Window System 開発ガイド

透明オーバーレイウィンドウとは

透明オーバーレイ拡張機能により、透明オーバーレイウィンドウを作成し、操作できます。このようなウィンドウは、ピクセル単位で操作することによりユーザーが背景のウィンドウを見ることができる X ウィンドウです。透明オーバーレイウィンドウを作成し、使用する機能はソフトウェアに実装されているので、特別なハードウェアは不要です。単純なハードウェア上で複雑な透明オーバーレイを操作するには時間がかかりますが、X サーバーが使用可能であれば特殊なオーバーレイハードウェアが使用できるので、クライアントは正しいビジュアルを選択します。ハードウェアやニーズによっては、透明オーバーレイウィンドウに合わせてクライアントのカラー割り当てを調整しなければならないことがあるので注意してください。

オーバーレイウィンドウを使用すると、アプリケーションの表示ウィンドウに一時イメージを表示できます。オーバーレイを提供するアプリケーションのユーザーは、イメージにテキストや図表の注釈を付けたり、イメージの一部分を一時的に強調表示したり、イメージの上に動画を作成したりできます。オーバーレイ上のグラフィックスを消去しても、その下にあるグラフィックを生成し直す必要はありません。

透明オーバーレイ拡張機能により、クライアントは標準 X 要求を使用して不透明ペイントまたは透明ペイントでプリミティブを描画できます。不透明ペイントは標準的な描画方法の名称で、透明ペイントはピクセルを隠します。ペイント型は、標準 X グラフィックスコンテキストに関連付けられています。ウィンドウの背景も透明ペイントに設定できます。透明オーバーレイウィンドウは、すべての正規ウィンドウ規則と操作手順に準拠しています。たとえば、透明オーバーレイウィンドウは、それが関連付けられているハードウェアに関係なく、ウィンドウの重なり順序のどこにでも配置できます。これは、Solaris X サーバーの複数プレーングループ (MPG) 機能と一緒にソフトウェアに実装されています。

サーバーの複数プレーングループ機能により、異なるハードウェアから表示されるウィンドウを共存させることができます。各ウィンドウにはビジュアルが関連付けられており、ビジュアルはハードウェアに関連付けられています。一部のハードウェアは「層」の数が限定されるように物理的に作成されていますが (たとえば、ハードウェアのオーバーレイプレーン内で作成されたウィンドウは、常に正規ウィンドウの上に表示されるものと想定される)、MPG はソフトウェア内でこの制限を解決します。MPG により、ウィンドウの重なり順序はハードウェアの物理的制限の影響を受けなくなります。その結果、重なりは単に標準サーバー内と同じになります。オーバーレイハードウェアが使用可能であり、要求される場合は、MPG によって作業を最小限度に抑え性能を高めることができます。

一般に、オーバーレイはグラフィックスを描画できるピクセルバッファ (物理的またはソフトウェアによりシミュレート) です。オーバーレイが物理的なものである (つまり、ソフトウェアでシミュレートされたものではない) 場合は、オーバーレイ上のグラフィックスを消去しても、その下にあるグラフィックスは損傷を受けません。このため、下にあるグラフィックスが複雑で再描画に時間がかかる場合は、性能の向上に役立ちます。オーバーレイがソフトウェアに含まれる場合は、オーバーレイ上のグラフィックスを消去すると Expose イベントが生成されることがあります。