IDirect3DDevice9::SetGammaRamp

暗黙のスワップ チェーンのガンマ修正ランプを設定します。このメソッドは、ウィンドウ表示モードで実行している場合はアクティブなウィンドウだけではなく、スクリーン全体に対して有効です。

void 
SetGammaRamp(
  UINT  iSwapChain,
  DWORD Flags,
  CONST D3DGAMMARAMP * pRamp
);

パラメータ

  • iSwapChain
    スワップ チェーンを指定する符号なし整数です。
  • Flags
    修正を適用する必要があるかどうかを示します。ガンマ修正を行うことで、表示がより均一化されますが、処理上のオーバーヘッドが発生することがあるため、頻繁に使用しないでください。画面全体が赤く点滅するなどの瞬間的なエフェクトはキャリブレートすべきではありませんが、長時間にわたるガンマ変更はキャリブレートする必要があります。次の値のいずれかを指定できます。
    • D3DSGR_CALIBRATE
      ガンマ キャリブレータをインストールした場合、ランプはシステムおよびモニターの応答曲線に応じてデバイスに送信される前に変更されます。キャリブレータをインストールしない場合、ランプはデバイスに直接送信されます。
    • D3DSGR_NO_CALIBRATION
      ガンマ修正は適用されません。指定されたガンマ テーブルはデバイスに直接転送されます。
  • pRamp
    明示的スワップ チェーンに対して設定されるガンマ修正ランプを表す、D3DGAMMARAMP 構造体へのポインター。

戻り値

値を返しません。

解説 

Direct3D 9 にはデバイスのプロパティとして 1 つのスワップ チェーンがあるため、デバイスごとにスワップ チェーン (暗黙的なスワップ チェーン) が常に 1 つ以上は存在します。ガンマ ランプが直ちに有効になり、垂直同期の待機はありません。

デバイスがスワップ チェーンの現在のプレゼンテーション モード (全画面またはウィンドウ表示) でガンマ ランプをサポートしていない場合、エラーは返されません。アプリケーションは、D3DCAPS2_FULLSCREENGAMMA および D3DCAPS2_CANCALIBRATEGAMMA 能力ビットを D3DCAPS9 構造体の Caps2 メンバーで確認し、デバイスの能力、およびキャリブレータがインストールされているかどうかを判別できます。

ウィンドウ表示ガンマ修正プレゼンテーションでは、ハードウェアがその機能に対応している場合、IDirect3DSwapChain9::Present を使用します。DirectX 8 では、SetGammaRamp により全画面表示モード アプリケーションのみでガンマ ランプを設定します。ガンマ修正の詳細については、「ガンマ (Direct3D 9)」を参照してください。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

IDirect3DSwapChain9, IDirect3DDevice9::GetGammaRamp