Dela via


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).

djupbuffert