Skapa en djupbuffert (Direct3D 9)
En djupbuffert är en egenskap för enheten. Om du vill skapa en djupbuffert som hanteras av Direct3D anger du lämpliga medlemmar i D3DPRESENT_PARAMETERS struktur enligt följande kodexempel.
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
Genom att ange EnableAutoDepthStencil-medlemmen till TRUEinstruerar du Direct3D att hantera djupbuffertar för programmet. Observera att AutoDepthStencilFormat måste vara inställt på ett giltigt djupbuffertformat. Flaggan D3DFMT_D16 anger en 16-bitars djupbuffert, om en är tillgänglig.
Följande anrop till metoden IDirect3D9::CreateDevice skapar en enhet som sedan skapar en djupbuffert.
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3dDevice ) ) )
return E_FAIL;
Djupbufferten anges automatiskt som enhetens återgivningsmål. När enheten återställs förstörs djupbufferten automatiskt och återskapas i den nya storleken.
Om du vill skapa en ny djupbuffertyta använder du metoden IDirect3DDevice9::CreateDepthStencilSurface.
Om du vill ange en ny djupbuffertyta för enheten använder du metoden IDirect3DDevice9::SetDepthStencilSurface.
Om du vill använda djupbufferten i ditt program måste du aktivera djupbufferten. Mer information finns i Aktivering av djupbuffertning (Direct3D 9).
Relaterade ämnen