Microsoft DirectX 8.0 (C++)

ライト プロパティの取得

C++ で、既存の光源のプロパティをすべて取得するには、デバイスに対して IDirect3DDevice8::GetLight メソッドを呼び出す。GetLight メソッドを呼び出すとき、プロパティを取得する光源の 0 から始まるインデックスを第 1 パラメータに渡し、D3DLIGHT8 構造体のアドレスを第 2 パラメータに渡す。デバイスは、D3DLIGHT8 構造体に値を設定して、指定されたインデックスの光源でそのデバイスが使用するライト プロパティを記述する。

次のサンプル コードは、この処理を示している。

/*
* このコードでは、変数 pd3dDevice は、IDirect3DDevice8 インターフェイスへの
* 有効なポインタであると仮定している。
 */
HRESULT hr;
D3DLIGHT8 light;

// 最初のライトについてのプロパティ情報を取得する。
hr = pd3dDevice->GetLight(0, &light);
if (FAILED(hr))
{
    // エラー処理コード。
}

デバイス内で割り当てられている光源の範囲外のインデックスを指定すると、GetLight メソッドは失敗し、D3DERR_INVALIDCALLを返す。