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

SX アクセラレータとの比較

Creator アクセラレータの画像表示アーキテクチャーは、SX アクセラレータのディスプレイアダプタである CG14 と類似しています。CG14 もまた、8 ビットまたは 24 ビットのアンダーレイ画像と単一 8 ビット疑似カラーのオーバーレイ画像を備えた、X チャネルアーキテクチャーのディスプレイアダプタです。Creator アクセラレータの画像表示アーキテクチャーと CG14 には、以下の 2 つの大きな違いがあります。

ガンマ補正

Creator アクセラレータには、ガンマ補正ありの画像表示形式と、ガンマ補正なしの画像表示形式があります。ガンマ補正された画像は、リニア画像と呼ばれます。以下にリニア画像の種類を示します。

リニア画像と非リニア画像は、どちらも X11 画面の画像リスト上に存し、XGetVisualInfo によって照会することができます。リニア性は、X11 コアプロトコルで認識される画像上の特性ではないため、相対する非リニア画像からリニア画像を認識するために、拡張ルーチン XSolarisGetVisualGamma(1) が呼び出されます。詳細は、XSolarisGetVisualGamma(1) のマニュアルページを参照してください。

CG14 は、Creator アクセラレータのようなリニア画像を備えていません。CG14 は、特別なガンマ LUT を使用して、画面全体に影響するガンマ補正を行います。したがって、CG14 では、ガンマ補正された 24 ビットのウィンドウと補正されていないウィンドウを、画面上に同時に開くことはできません。Creator の画面上では、両方のウィンドウを同時に開くことが可能です。

単一のカラー LUT

CG14 では、ハードウェアのカラー LUT を 2 つ備えています。1 つは 8 ビットのアンダーレイ画像で使用され、もう 1 つは 8 ビットのオーバーレイ画像で使用されます。一方、Creator アクセラレータシリーズ 1 と 2 では、ハードウェアのカラー LUT を 1 つだけ備えています。これは、2 つのウィンドウのカラーマップが、同じピクセルの位置で同じ色を持っていない場合には、Creator アクセラレータ上のオーバーレイウィンドウが、8 ビットのアンダーレイウィンドウに対し、カラーマップのフラッシュ現象を起こすことを意味します。Creator シリーズ 3 には、Xserver が割り当てや共有を管理する 4 種類のカラー LUT があります。

Creator アクセラレータ上にあるカラー LUT が 1 つだけの場合には、透過オーバーレイのアプリケーション上でオーバーレイとアンダーレイが色を共有するようにプログラミングしてください。オーバーレイ画像は、アンダーレイ画像とは常に異なるため、透過オーバーレイのアプリケーションは最低 2 種類のカラーマップを必要とし、その 1 つはオーバーレイに、もう 1 つはアンダーレイに割り当てられます。オーバーレイウィンドウは、通常アンダーレイウィンドウの子ウィンドウであり、各ピクセルのレイヤー間の関係は、アプリケーションによって管理されます。このような状態で、マウスポインタがアンダーレイとオーバーレイの境界の内側にある場合には、オーバーレイのカラーマップはハードウェアのカラー LUT にインストールされますが、アンダーレイのカラーマップはインストールされません。オーバーレイのカラーマップを通して表示された際に、アンダーレイのピクセルが正しい色を表示しているかどうかを確認してください。アンダーレイとオーバーレイ両方のカラーマップの同じ位置にそれぞれ色を割り当てることによって、確認することができます。