IDirect3D9::CheckDeviceType, méthode (d3d9.h)

Vérifie si un type d’appareil accéléré matériel peut être utilisé sur cet adaptateur.

Syntaxe

HRESULT CheckDeviceType(
  [in] UINT       Adapter,
  [in] D3DDEVTYPE DevType,
  [in] D3DFORMAT  AdapterFormat,
  [in] D3DFORMAT  BackBufferFormat,
  [in] BOOL       bWindowed
);

Paramètres

[in] Adapter

Type : UINT

Nombre ordinal indiquant l’adaptateur d’affichage à énumérer. D3DADAPTER_DEFAULT est toujours l’adaptateur d’affichage principal. Cette méthode retourne D3DERR_INVALIDCALL lorsque cette valeur est égale ou supérieure au nombre de cartes graphiques dans le système.

[in] DevType

Type : D3DDEVTYPE

Membre du type énuméré D3DDEVTYPE, indiquant le type d’appareil à case activée.

[in] AdapterFormat

Type : D3DFORMAT

Membre du type énuméré D3DFORMAT , indiquant le format du mode d’affichage de l’adaptateur pour lequel le type d’appareil doit être vérifié. Par exemple, certains appareils fonctionnent uniquement en mode 16 bits par pixel.

[in] BackBufferFormat

Type : D3DFORMAT

Format de la mémoire tampon d’arrière-mémoire. Pour plus d’informations sur les formats, consultez D3DFORMAT. Cette valeur doit être l’un des formats de cible de rendu. Vous pouvez utiliser GetAdapterDisplayMode pour obtenir le format actuel.

Pour les applications fenêtrés, le format de la mémoire tampon d’arrière-plan n’a pas besoin de correspondre au format du mode d’affichage si le matériel prend en charge la conversion de couleurs. L’ensemble des formats de mémoire tampon arrière possibles est limité, mais le runtime autorise tout format de mémoire tampon d’arrière-mémoire valide à être présenté à n’importe quel format de bureau. Il est également nécessaire que l’appareil soit opérable sur le bureau, car les appareils ne fonctionnent généralement pas en mode 8 bits par pixel.

Les applications plein écran ne peuvent pas effectuer de conversion de couleurs.

D3DFMT_UNKNOWN est autorisé en mode fenêtré.

[in] bWindowed

Type : BOOL

Valeur indiquant si le type d’appareil sera utilisé en mode plein écran ou fenêtré. Si la valeur est TRUE, la requête est effectuée pour les applications fenêtrés ; sinon, cette valeur doit être définie sur FALSE.

Valeur retournée

Type : HRESULT

Si l’appareil peut être utilisé sur cet adaptateur, D3D_OK est retourné.

D3DERR_INVALIDCALL est retourné si l’adaptateur est égal ou supérieur au nombre de cartes graphiques dans le système. D3DERR_INVALIDCALL est également retourné si CheckDeviceType a spécifié un appareil qui n’existe pas.

D3DERR_NOTAVAILABLE est retourné si le format de mémoire tampon d’arrière-mémoire demandé n’est pas pris en charge ou si l’accélération matérielle n’est pas disponible pour les formats spécifiés.

Notes

Un type d’appareil hal nécessite une accélération matérielle. Les applications peuvent utiliser CheckDeviceType pour déterminer si le matériel et les pilotes nécessaires sont présents pour prendre en charge un appareil hal.

Les applications plein écran ne doivent pas spécifier un DisplayFormat qui contient un canal alpha. Cela entraîne l’échec de l’appel. Notez qu’un canal alpha peut être présent dans la mémoire tampon d’arrière-plan, mais que les deux formats d’affichage doivent être identiques à tous les autres égards. Par exemple, si DisplayFormat = D3DFMT_X1R5G5B5, les valeurs valides pour BackBufferFormat incluent D3DFMT_X1R5G5B5 et D3DFMT_A1R5G5B5 mais excluent D3DFMT_R5G6B5.

Le fragment de code suivant montre comment utiliser CheckDeviceType pour tester si un certain type d’appareil peut être utilisé sur cet adaptateur.


if(SUCCEEDED(pD3Device->CheckDeviceType(D3DADAPTER_DEFAULT, 
                                        D3DDEVTYPE_HAL, 
                                        DisplayFormat, 
                                        BackBufferFormat, 
                                        bIsWindowed)))
    
     return S_OK;
// There is no HAL on this adapter using this render-target format. 
// Try again, using another format.

Ce code retourne S_OK si l’appareil peut être utilisé sur l’adaptateur par défaut avec le format de surface spécifié.

L’utilisation de CheckDeviceType pour tester la compatibilité entre une mémoire tampon d’arrière-mémoire qui diffère du format d’affichage renvoie les valeurs appropriées. Cela signifie que l’appel reflète les fonctionnalités de l’appareil. Si l’appareil ne peut pas afficher le format de mémoire tampon d’arrière-mémoire demandé, l’appel retourne toujours D3DERR_NOTAVAILABLE. Si l’appareil peut afficher au format, mais ne peut pas effectuer la présentation de conversion de couleur, la valeur de retour est également D3DERR_NOTAVAILABLE. Les applications peuvent découvrir la prise en charge matérielle de la présentation elle-même en appelant CheckDeviceFormatConversion. Aucune émulation logicielle pour la présentation de conversion de couleur elle-même ne sera proposée.

Spécifications

   
Plateforme cible Windows
En-tête d3d9.h (inclure D3D9.h)
Bibliothèque D3D9.lib

Voir aussi

IDirect3D9