CreateDepthStencilSurface

来源:百度知道 编辑:UC知道 时间:2024/06/11 02:11:11
//声明
IDirect3DSurface9 **g_pDepthBuffer = NULL;

//InitializeObjects()
D3DMULTISAMPLE_TYPE lixin;
lixin=D3DMULTISAMPLE_8_SAMPLES;
g_D3DDevice->CreateDepthStencilSurface(320,200,D3DFMT_A8R8G8B8,lixin,NULL,NULL,g_pDepthBuffer,NULL);

//render()
g_D3DDevice->SetDepthStencilSurface(*g_pDepthBuffer);
g_D3DDevice->SetRenderTarget(0, *g_pDepthBuffer);
D3DMULTISAMPLE_TYPE MultiSample;
MultiSample=D3DMULTISAMPLE_4_SAMPLES;

D3DDEVTYPE DeviceType;
DeviceType=D3DDEVTYPE_HAL;

D3DFORMAT SurfaceFormat;
SurfaceFormat=D3DFMT_A8R8G8B8;

idirect3d9->CheckDeviceMultiSampleType(D3DADAPTER_DEFAULT,DeviceType,SurfaceFormat,true,MultiSample,&pQualityLevels);

g_D3DDevice->CreateDepthStencilSurface(320,200,SurfaceFormat,MultiSample,pQualityLevels,true,g_pDepthBuffer,NULL);
我都这样了他还空指针异常!

TDx9_3D::CheckDeviceMultiSampleType->QualityLevels

(320,200,8,lixin,NULL,NULL,g_pDepthBuffer,NULL);
第一个NULL应当是输入值,0到1之间,等于:
TDx9_3D::CheckDeviceMultiSampleType->QualityLevels

第二个NULL应当是输入值,真还是假。