Microsoft DirectX 8.0 (C++) |
ガンマ ランプ レベルは効果的な参照テーブルであり、Microsoft®Direct3D® が表示される新しいレベルにフレーム バッファ色成分をマップするために使用する。詳細については、「ガンマ ランプ レベルについて」を参照すること。IDirect3DDevice8::SetGammaRamp メソッドおよび IDirect3DDevice8::GetGammaRamp メソッドを呼び出すことにより、プライマリ サーフェスに対するランプ レベルを設定し、取得できる。SetGammaRamp は 2 つのパラメータを受け取り、GetGammaRamp は 1 つのパラメータを受け取る。SetGammaRamp の第 1 パラメータは、D3DSGR_CALIBRATE か D3DSGR_NO_CALIBRATION のいずれかである。第 2 パラメータ pRamp は、D3DGAMMARAMP 構造体へのポインタである。D3DGAMMARAMP 構造体には、WORD の 256 要素配列を 3 つ (1 つの配列ごとに赤、緑、青のガンマ ランプ) 含む。GetGammaRamp には、現在のガンマ ランプを格納する D3DGAMMARAMP 型へのポインタを受け取るパラメータが 1 つある。
SetGammaRamp の第 1 パラメータに DDSGR_CALIBRATE 値を含むと、新しいガンマ レベルを設定するときに口径測定器を起動できる。ガンマ ランプをキャリブレーションするといくらかオーバーヘッドがあるので、頻繁には使えない。調整されたガンマ ランプの設定は、ディスプレイ アダプタおよびモニタにかかわらず、一貫性のある完全なガンマ値を提供する。
すべてのシステムがガンマ キャリブレーションをサポートするわけではない。ガンマ キャリブレーションをサポートするかどうかを判定するには、IDirect3DDevice8::GetDeviceCaps を 呼び出して、メソッドが戻った後に関連付けられた D3DCAPS8 構造体の Caps2 メンバを調べる。D3DCAPS2_CANCALIBRATEGAMMA 能力フラグが存在すると、ガンマ キャリブレーションはサポートされる。
新しいランプ レベルを設定する場合、その配列に設定したレベルはアプリケーションがフルスクリーン (排他モード) の場合にだけ使用される。アプリケーションがノーマル モードに変更されると、常にランプ レベルは側に設定され、アプリケーションがフルスクリーン モードに復帰されるときに再び取得される。