Share via


Método IDirect3DDevice9::GetLight (d3d9.h)

Recupera un conjunto de propiedades de iluminación que usa este dispositivo.

Sintaxis

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

Parámetros

[in] Index

Tipo: DWORD

Índice de base cero de la propiedad de iluminación establecida para recuperar. Este método producirá un error si no se ha establecido una propiedad de iluminación para este índice llamando al método IDirect3DDevice9::SetLight .

[out] unnamedParam2

Tipo: D3DLight9*

Puntero a una estructura D3DLIGHT9 que se rellena con el conjunto de parámetros de iluminación recuperado.

Valor devuelto

Tipo: HRESULT

Si el método se ejecuta correctamente, el valor devuelto es D3D_OK. Si se produce un error en el método, el valor devuelto se puede D3DERR_INVALIDCALL.

Comentarios

Este método no devolverá el estado del dispositivo para un dispositivo que se crea mediante D3DCREATE_PUREDEVICE. Si desea usar este método, debe crear el dispositivo con cualquiera de los demás valores de D3DCREATE.

Recupere todas las propiedades de un origen de luz existente llamando al método IDirect3DDevice9::GetLight para el dispositivo. Al llamar al método IDirect3DDevice9::GetLight , pase el índice de base cero del origen de luz para el que se recuperarán las propiedades como primer parámetro y proporcione la dirección de una estructura D3DLIGHT9 como segundo parámetro. El dispositivo rellena la estructura D3DLIGHT9 para describir las propiedades de iluminación que usa para la fuente de luz en ese índice.


// 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

Si proporciona un índice fuera del intervalo de las fuentes de luz asignadas en el dispositivo, se produce un error en el método IDirect3DDevice9::GetLight y devuelve D3DERR_INVALIDCALL.

Al asignar un conjunto de propiedades de luz para una fuente de luz en una escena, la fuente de luz se puede activar llamando al método IDirect3DDevice9::LightEnable para el dispositivo. Los nuevos orígenes de luz están deshabilitados de forma predeterminada. El método IDirect3DDevice9::LightEnable acepta dos parámetros. Establezca el primer parámetro en el índice de base cero de la fuente de luz que se verá afectado por el método y establezca el segundo parámetro en TRUE para permitir que la luz o FALSE la deshabiliten. En el ejemplo de código siguiente se muestra el uso de este método habilitando la primera fuente de luz en la lista de propiedades de fuente de luz del dispositivo.


// 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

Compruebe el miembro MaxActiveLights de la estructura D3DCAPS9 al recuperar las funcionalidades del dispositivo para determinar el número máximo de luces activas compatibles con ese dispositivo.

Si habilita o deshabilita una luz que no tiene propiedades establecidas con IDirect3DDevice9::SetLight, el método IDirect3DDevice9::LightEnable crea una fuente de luz con las propiedades enumeradas en la tabla siguiente y la habilita o deshabilita.

Requisitos

   
Plataforma de destino Windows
Encabezado d3d9.h (incluya D3D9.h)
Library D3D9.lib

Consulte también

IDirect3DDevice9

IDirect3DDevice9::GetLightEnable

IDirect3DDevice9::LightEnable

IDirect3DDevice9::SetLight