Sun フレームバッファー使用の手引き

Creator と ZX アクセラレータとの比較

ZX アクセラレータと異なり、Creator アクセラレータの出荷時のデフォルト画像はオーバーレイではありません。ZX アクセラレータでは、デフォルト画像は 8 ビットのオーバーレイの疑似カラーとなりますが、Creator アクセラレータでは、SX アクセラレータと同様に、8 ビットのアンダーレイの疑似カラーとなります。アンダーレイのウィンドウで影響を受けないポップアップウィンドウを持つアプリケーションを作成する場合には、単純にデフォルトの画像を使用することはできません。そのためアプリケーションは、影響を受けないオーバーレイ画像を検索するために、XSolarisOvlSelectBestOverlay を呼び出す必要があります。詳細は、X ウィンドウシステムのオーバーレイについて記述している、Solaris のマニュアルを参照してください。


注 -

XSolarisOvlSelectBestOverlay は、Solaris 2.4 リリースから提供されています。Solaris 2.4 と Solaris 2.4 以前のオペレーティングシステム上でアプリケーションを実行する場合には、この関数の外部参照は、#pragma weak を定義します。これにより、プログラムはシンボルの値を確認することができます。プログラムが Solaris 2.3 またはそれ以前のバージョンで実行されている場合は、シンボルの値が 0 になります。この場合には、オーバーレイ画像を検索するために XSolarisOvlSelectBestOverlay を呼び出すことはできません。そのかわりに、アプリケーションは、XGetVisualInfo を使用して、256 以下のカラーマップのエントリを持つ最初の 8 ビット画像を検索することができます。ただし、この方法は Creator アクセラレータ特有のものであり、Creator アクセラレータを使用するためのコードは、他のデバイスへの移植性があるとは限りません。


ウィンドウマネージャーについての注意事項

Creator アクセラレータのデフォルトの画像がオーバーレイでないため、オーバーレイのウィンドウがオーバーライドリダイレクトでない場合には、問題が発生することがあります (たとえば、ウィンドウマネージャの装飾ウィンドウで囲まれる場合など)。Solaris でサポートしている olwmmwmdtwm などのウィンドウマネージャーでは、ツールキットのサブウィンドウが、デフォルト画像の装飾ウィンドウで囲まれています。これは、アプリケーション内で、ポップアップウィンドウにデフォルト以外の画像が指定されている場合も同様です。

たとえば、デフォルトの画像が 8 ビットのアンダーレイの疑似カラーの場合に、アプリケーションがツールキットに対し、ポップアップウィンドウを 8 ビットのオーバーレイの疑似カラー画像に置くように指定しても、ウィンドウマネージャはそのポップアップウィンドウを、8 ビットのアンダーレイの装飾ウィンドウで囲みます。このように、ポップアップウィンドウは、他のアンダーレイのウィンドウに悪影響を与えます。

この問題を回避する方法を以下に示します。