Creazione di un buffer di profondità (Direct3D 9)
Un buffer di profondità è una proprietà del dispositivo. Per creare un buffer di profondità gestito da Direct3D, impostare i membri appropriati della struttura D3DPRESENT_PARAMETERS , come illustrato nell'esempio di codice seguente.
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
Impostando il membro EnableAutoDepthStencil su TRUE, si indica a Direct3D di gestire i buffer di profondità per l'applicazione. Si noti che AutoDepthStencilFormat deve essere impostato su un formato di buffer di profondità valido. Il flag D3DFMT_D16 specifica un buffer di profondità a 16 bit, se disponibile.
La chiamata seguente al metodo IDirect3D9::CreateDevice crea un dispositivo che crea quindi un buffer di profondità.
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3dDevice ) ) )
return E_FAIL;
Il buffer di profondità viene impostato automaticamente come destinazione di rendering del dispositivo. Quando il dispositivo viene reimpostato, il buffer di profondità viene eliminato automaticamente e ricreato nella nuova dimensione.
Per creare una nuova superficie del buffer di profondità, usare il metodo IDirect3DDevice9::CreateDepthStencilSurface .
Per impostare una nuova superficie del buffer di profondità per il dispositivo, usare il metodo IDirect3DDevice9::SetDepthStencilSurface .
Per usare il buffer di profondità nell'applicazione, è necessario abilitare il buffer di profondità. Per informazioni dettagliate, vedere Abilitazione del buffer di profondità (Direct3D 9).
Argomenti correlati