Méthode IDirect3DDevice9::GetLight (d3d9.h)
Récupère un ensemble de propriétés d’éclairage que cet appareil utilise.
Syntaxe
HRESULT GetLight(
[in] DWORD Index,
[out] D3DLIGHT9 *unnamedParam2
);
Paramètres
[in] Index
Type : DWORD
Index de base zéro de la propriété d’éclairage définie à récupérer. Cette méthode échoue si aucune propriété d’éclairage n’a été définie pour cet index en appelant la méthode IDirect3DDevice9::SetLight .
[out] unnamedParam2
Type : D3DLight9*
Pointeur vers une structure D3DLIGHT9 remplie avec le jeu de paramètres d’éclairage récupéré.
Valeur retournée
Type : HRESULT
Si la méthode réussit, la valeur de retour est D3D_OK. Si la méthode échoue, la valeur de retour peut être D3DERR_INVALIDCALL.
Notes
Cette méthode ne retourne pas l’état de l’appareil pour un appareil créé à l’aide de D3DCREATE_PUREDEVICE. Si vous souhaitez utiliser cette méthode, vous devez créer votre appareil avec l’une des autres valeurs dans D3DCREATE.
Récupérez toutes les propriétés d’une source de lumière existante en appelant la méthode IDirect3DDevice9::GetLight pour l’appareil. Lors de l’appel de la méthode IDirect3DDevice9::GetLight , transmettez l’index de base zéro de la source de lumière pour laquelle les propriétés seront récupérées en tant que premier paramètre, puis fournissez l’adresse d’une structure D3DLIGHT9 comme deuxième paramètre. L’appareil remplit la structure D3DLIGHT9 pour décrire les propriétés d’éclairage qu’il utilise pour la source de lumière à cet index.
// 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 vous fournissez un index en dehors de la plage des sources de lumière affectées dans l’appareil, la méthode IDirect3DDevice9::GetLight échoue, ce qui renvoie D3DERR_INVALIDCALL.
Lorsque vous affectez un ensemble de propriétés de lumière à une source de lumière dans une scène, la source de lumière peut être activée en appelant la méthode IDirect3DDevice9::LightEnable pour l’appareil. Les nouvelles sources de lumière sont désactivées par défaut. La méthode IDirect3DDevice9::LightEnable accepte deux paramètres. Définissez le premier paramètre sur l’index de base zéro de la source de lumière à affecter par la méthode, et définissez le deuxième paramètre sur TRUE pour permettre à la lumière ou FALSE de la désactiver. L’exemple de code suivant illustre l’utilisation de cette méthode en activant la première source de lumière dans la liste des propriétés de la source de lumière de l’appareil.
// 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
Vérifiez le membre MaxActiveLights de la structure D3DCAPS9 lorsque vous récupérez les fonctionnalités de l’appareil pour déterminer le nombre maximal de lumières actives prises en charge par cet appareil.
Si vous activez ou désactivez une lumière qui n’a aucune propriété définie avec IDirect3DDevice9::SetLight, la méthode IDirect3DDevice9::LightEnable crée une source de lumière avec les propriétés répertoriées dans le tableau suivant et l’active ou la désactive.
Spécifications
Plateforme cible | Windows |
En-tête | d3d9.h (inclure D3D9.h) |
Bibliothèque | D3D9.lib |