Metodo IDirect3DDevice9::GetLight (d3d9helper.h)
Recupera un set di proprietà di illuminazione usate da questo dispositivo.
Sintassi
HRESULT GetLight(
[in] DWORD Index,
[out] D3DLIGHT9 *unnamedParam2
);
Parametri
[in] Index
Tipo: DWORD
Indice in base zero della proprietà di illuminazione impostata per recuperare. Questo metodo avrà esito negativo se una proprietà di illuminazione non è stata impostata per questo indice chiamando il metodo IDirect3DDevice9::SetLight .
[out] unnamedParam2
Tipo: D3DLight9*
Puntatore a una struttura D3DLIGHT9 riempita con il set di parametri di illuminazione recuperati.
Valore restituito
Tipo: HRESULT
Se il metodo ha esito positivo, il valore restituito è D3D_OK. Se il metodo ha esito negativo, il valore restituito può essere D3DERR_INVALIDCALL.
Commenti
Questo metodo non restituirà lo stato del dispositivo per un dispositivo creato usando D3DCREATE_PUREDEVICE. Se si vuole usare questo metodo, è necessario creare il dispositivo con uno degli altri valori in D3DCREATE.
Recuperare tutte le proprietà per una fonte di luce esistente chiamando il metodo IDirect3DDevice9::GetLight per il dispositivo. Quando si chiama il metodo IDirect3DDevice9::GetLight , passare l'indice in base zero della fonte di luce per cui le proprietà verranno recuperate come primo parametro e specificare l'indirizzo di una struttura D3DLIGHT9 come secondo parametro. Il dispositivo riempie la struttura D3DLIGHT9 per descrivere le proprietà di illuminazione usate per la fonte di luce in corrispondenza di tale indice.
// 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
Se si specifica un indice all'esterno dell'intervallo delle fonti di luce assegnate nel dispositivo, il metodo IDirect3DDevice9::GetLight ha esito negativo, restituendo D3DERR_INVALIDCALL.
Quando si assegna un set di proprietà di luce per una fonte di luce in una scena, la fonte di luce può essere attivata chiamando il metodo IDirect3DDevice9::LightEnable per il dispositivo. Per impostazione predefinita, le nuove sorgenti di luce sono disabilitate. Il metodo IDirect3DDevice9::LightEnable accetta due parametri. Impostare il primo parametro sull'indice in base zero della fonte di luce da interessare dal metodo e impostare il secondo parametro su TRUE per abilitare la luce o FALSE per disabilitarla. Nell'esempio di codice seguente viene illustrato l'uso di questo metodo abilitando la prima fonte luminosa nell'elenco delle proprietà della fonte luminosa 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
Controllare il membro MaxActiveLights della struttura D3DCAPS9 quando si recuperano le funzionalità del dispositivo per determinare il numero massimo di luci attive supportate da tale dispositivo.
Se si abilita o disabilita una luce che non dispone di proprietà impostate con IDirect3DDevice9::SetLight, il metodo IDirect3DDevice9::LightEnable crea una fonte di luce con le proprietà elencate nella tabella seguente e la abilita o la disabilita.
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | d3d9helper.h (include D3D9.h) |
Libreria | D3D9.lib |