Een dieptebuffer maken (Direct3D 9)
Een dieptebuffer is een eigenschap van het apparaat. Als u een dieptebuffer wilt maken die wordt beheerd door Direct3D, stelt u de juiste leden van de D3DPRESENT_PARAMETERS-structuur in, zoals wordt weergegeven in het volgende codevoorbeeld.
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
Door het lid EnableAutoDepthStencil in te stellen op TRUE, geeft u Direct3D opdracht om dieptebuffers voor de toepassing te beheren. Houd er rekening mee dat AutoDepthStencilFormat moet worden ingesteld op een geldige dieptebufferindeling. Met de D3DFMT_D16 vlag wordt een 16-bits dieptebuffer opgegeven, indien beschikbaar.
Met de volgende aanroep van de methode IDirect3D9::CreateDevice wordt een apparaat gemaakt dat vervolgens een dieptebuffer maakt.
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &d3dDevice ) ) )
return E_FAIL;
De dieptebuffer wordt automatisch ingesteld als het renderdoel van het apparaat. Wanneer het apparaat opnieuw wordt ingesteld, wordt de dieptebuffer automatisch vernietigd en opnieuw gemaakt in de nieuwe grootte.
Als u een nieuw dieptebufferoppervlak wilt maken, gebruikt u de methode IDirect3DDevice9::CreateDepthStencilSurface.
Als u een nieuw dieptebufferoppervlak voor het apparaat wilt instellen, gebruikt u de methode IDirect3DDevice9::SetDepthStencilSurface.
Als u de dieptebuffer in uw toepassing wilt gebruiken, moet u de dieptebuffer inschakelen. Zie Dieptebuffering (Direct3D 9) inschakelenvoor meer informatie.
Verwante onderwerpen