IDirect3DDevice9::GetLight メソッド (d3d9.h)
このデバイスで使用される照明プロパティのセットを取得します。
構文
HRESULT GetLight(
[in] DWORD Index,
[out] D3DLIGHT9 *unnamedParam2
);
パラメーター
[in] Index
種類: DWORD
取得する照明プロパティ セットの 0 から始まるインデックス。 IDirect3DDevice9::SetLight メソッドを呼び出して、このインデックスに照明プロパティが設定されていない場合、このメソッドは失敗します。
[out] unnamedParam2
種類: D3DLight9*
取得した lighting-parameter セットで埋められた D3DLIGHT9 構造体へのポインター。
戻り値
種類: HRESULT
メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合は、戻り値をD3DERR_INVALIDCALLできます。
解説
このメソッドは、D3DCREATE_PUREDEVICEを使用して作成されたデバイスのデバイスの状態を返しません。 この方法を使用する場合は、 D3DCREATE 内の他の値のいずれかを使用してデバイスを作成する必要があります。
デバイスの IDirect3DDevice9::GetLight メソッドを呼び出して、既存の光源のすべてのプロパティを取得します。 IDirect3DDevice9::GetLight メソッドを呼び出すときに、プロパティが最初のパラメーターとして取得される光源の 0 から始まるインデックスを渡し、2 番目のパラメーターとして D3DLIGHT9 構造体のアドレスを指定します。 デバイスは 、D3DLIGHT9 構造体を塗りつぶして、そのインデックスの光源に使用する照明プロパティを記述します。
// Assume d3dDevice is a valid pointer to an IDirect3DDevice9 interface.
HRESULT hr;
D3DLight9 light;
// Get the property information for the first light.
hr = pd3dDevice->GetLight(0, &light);
if (SUCCEEDED(hr))
// Handle Success
else
// Handle failure
デバイスに割り当てられている光源の範囲外にインデックスを指定すると、 IDirect3DDevice9::GetLight メソッドが失敗し、D3DERR_INVALIDCALLが返されます。
シーン内の光源に一連のライト プロパティを割り当てると、デバイスの IDirect3DDevice9::LightEnable メソッドを呼び出すことによって光源をアクティブ化できます。 新しい光源は既定で無効になっています。 IDirect3DDevice9::LightEnable メソッドは、2 つのパラメーターを受け入れます。 メソッドの影響を受ける光源の 0 から始まるインデックスに最初のパラメーターを設定し、2 番目のパラメーターを TRUE に設定してライトまたは FALSE を 無効にします。 次のコード例は、デバイスの光源プロパティの一覧で最初の光源を有効にして、このメソッドを使用する方法を示しています。
// Assume d3dDevice is a valid pointer to an IDirect3DDevice9 interface.
HRESULT hr;
hr = pd3dDevice->LightEnable(0, TRUE);
if (SUCCEEDED(hr))
// Handle Success
else
// Handle failure
デバイスの機能を取得するときに 、D3DCAPS9 構造体の MaxActiveLights メンバーを確認して、そのデバイスでサポートされているアクティブ ライトの最大数を確認します。
IDirect3DDevice9::SetLight で設定されているプロパティがないライトを有効または無効にすると、IDirect3DDevice9::LightEnable メソッドは、次の表に示すプロパティを持つ光源を作成し、有効または無効にします。
要件
対象プラットフォーム | Windows |
ヘッダー | d3d9.h (D3D9.h を含む) |
Library | D3D9.lib |