Метод IDirect3DDevice9::GetLight (d3d9helper.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 d3d9helper.h (включая D3D9.h)
Библиотека D3D9.lib

См. также раздел

IDirect3DDevice9

IDirect3DDevice9::GetLightEnable

IDirect3DDevice9::LightEnable

IDirect3DDevice9::SetLight