다음을 통해 공유


IDirect3DDevice9::GetLight 메서드(d3d9.h)

이 디바이스에서 사용하는 조명 속성 집합을 검색합니다.

구문

HRESULT GetLight(
  [in]  DWORD     Index,
  [out] D3DLIGHT9 *unnamedParam2
);

매개 변수

[in] Index

형식: DWORD

검색할 조명 속성 집합의 인덱스(0부터 시작)입니다. 이 메서드는 IDirect3DDevice9::SetLight 메서드를 호출하여 이 인덱스에서 조명 속성을 설정하지 않은 경우 실패합니다.

[out] unnamedParam2

형식: D3DLight9*

검색된 조명 매개 변수 집합으로 채워진 D3DLIGHT9 구조체에 대한 포인터입니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 D3D_OK. 메서드가 실패하면 반환 값을 D3DERR_INVALIDCALL 수 있습니다.

설명

이 메서드는 D3DCREATE_PUREDEVICE 사용하여 만든 디바이스의 디바이스 상태를 반환하지 않습니다. 이 방법을 사용하려면 D3DCREATE의 다른 값을 사용하여 디바이스를 만들어야 합니다.

디바이스에 대한 IDirect3DDevice9::GetLight 메서드를 호출하여 기존 광원에 대한 모든 속성을 검색합니다. IDirect3DDevice9::GetLight 메서드를 호출할 때 속성을 첫 번째 매개 변수로 검색할 광원의 인덱스(0부터 시작)를 전달하고 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 메서드는 두 개의 매개 변수를 허용합니다. 첫 번째 매개 변수를 메서드의 영향을 받을 광원의 인덱스(0부터 시작)로 설정하고 두 번째 매개 변수를 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 포함)
라이브러리 D3D9.lib

추가 정보

IDirect3DDevice9

IDirect3DDevice9::GetLightEnable

IDirect3DDevice9::LightEnable

IDirect3DDevice9::SetLight