Partager via


Création d’un appareil (Direct3D 9)

Pour créer un appareil Direct3D, commencez par créer un objet Direct3D (voir Direct3DCreate9). Tous les appareils de rendu créés par un objet Direct3D partagent les mêmes ressources physiques. Si vous créez plusieurs appareils de rendu à partir d’un seul objet Direct3D, des pénalités de performances extrêmes sont encourues, car elles partagent le même matériel.

Tout d’abord, initialisez les valeurs de la structure D3DPRESENT_PARAMETERS utilisée pour créer l’appareil Direct3D. L’exemple de code suivant spécifie une application fenêtré dans laquelle la mémoire tampon arrière est copiée dans la mémoire tampon frontale uniquement pendant une opération de synchronisation verticale.

LPDIRECT3DDEVICE9 d3dDevice = NULL;

D3DPRESENT_PARAMETERS d3dpp; 

ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed   = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;

Ensuite, créez l’appareil Direct3D. L’appel IDirect3D9 ::CreateDevice spécifie l’adaptateur par défaut, un appareil HAL (Hardware Abstraction Layer) et le traitement de vertex logiciels.

if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                    D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                    &d3dpp, &d3dDevice ) ) )
    return E_FAIL;

Veuillez noter qu’un appel pour créer, libérer ou réinitialiser le périphérique doit se produire uniquement sur le même thread que la procédure de la fenêtre de mise au point.

Après avoir créé l’appareil, définissez son état.

Dispositifs Direct3D