Création d’une mémoire tampon de profondeur (Direct3D 9)

Une mémoire tampon de profondeur est une propriété de l’appareil. Pour créer une mémoire tampon de profondeur gérée par Direct3D, définissez les membres appropriés de la structure D3DPRESENT_PARAMETERS , comme illustré dans l’exemple de code suivant.

D3DPRESENT_PARAMETERS d3dpp; 
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed               = TRUE;
d3dpp.SwapEffect             = D3DSWAPEFFECT_COPY;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;

En définissant le membre EnableAutoDepthStencil sur TRUE, vous indiquez à Direct3D de gérer les tampons de profondeur pour l’application. Notez que AutoDepthStencilFormat doit être défini sur un format de mémoire tampon de profondeur valide. L’indicateur D3DFMT_D16 spécifie une mémoire tampon de profondeur 16 bits, le cas échéant.

L’appel suivant à la méthode IDirect3D9::CreateDevice crée un appareil qui crée ensuite une mémoire tampon de profondeur.

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

La mémoire tampon de profondeur est automatiquement définie comme cible de rendu de l’appareil. Lorsque l’appareil est réinitialisé, la mémoire tampon de profondeur est automatiquement détruite et recréée dans la nouvelle taille.

Pour créer une surface de mémoire tampon de profondeur, utilisez la méthode IDirect3DDevice9::CreateDepthStencilSurface .

Pour définir une nouvelle surface de mémoire tampon de profondeur pour l’appareil, utilisez la méthode IDirect3DDevice9::SetDepthStencilSurface .

Pour utiliser la mémoire tampon de profondeur dans votre application, vous devez activer la mémoire tampon de profondeur. Pour plus d’informations, consultez Activation de la mise en mémoire tampon de profondeur (Direct3D 9).

Mémoires tampons de profondeur