Метод IDirect3DDevice9::GetLight (d3d9.h)
Извлекает набор свойств освещения, которые использует это устройство.
Синтаксис
HRESULT GetLight(
[in] DWORD Index,
[out] D3DLIGHT9 *unnamedParam2
);
Параметры
[in] Index
Тип: DWORD
Отсчитываемый от нуля индекс извлекаемого свойства освещения. Этот метод завершится ошибкой, если свойство освещения не задано для этого индекса путем вызова метода IDirect3DDevice9::SetLight .
[out] unnamedParam2
Тип: D3DLight9*
Указатель на структуру D3DLIGHT9 , заполненную извлеченным набором параметров освещения.
Возвращаемое значение
Тип: HRESULT
Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Если метод завершается сбоем, возвращаемое значение можно D3DERR_INVALIDCALL.
Комментарии
Этот метод не возвращает состояние устройства, созданного с помощью D3DCREATE_PUREDEVICE. Если вы хотите использовать этот метод, необходимо создать устройство с любым другим значением в D3DCREATE.
Получите все свойства существующего источника света, вызвав метод IDirect3DDevice9::GetLight для устройства. При вызове метода IDirect3DDevice9::GetLight передайте отсчитываемый от нуля индекс источника света, для которого свойства будут получены в качестве первого параметра, и укажите адрес структуры 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.
При назначении набора свойств света источнику света в сцене можно активировать, вызвав метод IDirect3Device9::LightEnable для устройства. Новые источники света отключены по умолчанию. Метод IDirect3DDevice9::LightEnable принимает два параметра. Присвойте первому параметру отсчитываемый от нуля индекс источника света, на который будет влиять метод, и задайте для второго параметра значение 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
При получении возможностей устройства проверьте элемент MaxActiveLights структуры D3DCAPS9 , чтобы определить максимальное количество активных источников света, поддерживаемых этим устройством.
Если включить или отключить индикатор без свойств, заданных с помощью IDirect3Ddevice9::SetLight, метод IDirect3Device9::LightEnable создает источник света со свойствами, перечисленными в следующей таблице, и включает или отключает его.
Требования
Целевая платформа | Windows |
Header | d3d9.h (включая D3D9.h) |
Библиотека | D3D9.lib |