ガンマコントロールとは、ガンマランプを変更・設定し画面全体の明るさを変更することです。これにより、フェードイン、フェードアウト等の効果を表現することができます。
ガンマランプの設定には下記の関数を使用します。第1引数にはスワップチェーン、第2引数にはガンマ補正を行うかどうか、第3引数には設定するD3DGAMMARAMP構造体へのポインタ、を指定する。
static g_nGammaCount=0; // ガンマランプの設定 D3DGAMMARAMP ramp; if( g_nGammaCount < 256 ) { for( INT i=0 ; i<256 ; i++ ) { ramp.red[i] = g_nGammaCount * i; ramp.green[i] = g_nGammaCount * i; ramp.blue[i] = g_nGammaCount * i; } } g_lpD3DDevice->SetGammaRamp( 0, D3DSGR_CALIBRATE, &ramp );
ガンマランプの取得には下記の関数を使用します。第1引数にはスワップチェーン、第2引数にはガンマランプを格納するD3DGAMMARAMP構造体へのポインタ、を指定する。
D3DGAMMARAMP ramp; g_lpD3DDevice->GetGammaRamp( 0, &ramp );
使い方がよく分からないと思いますので、使用例のソースを置いておきます。