|
自己重写了CEGUI的imageset工具,用D3D渲染出现残影问题,请高手看看是怎么回事?用openGL则没问题 [em22]代码如下:
创建:
D3DDISPLAYMODE d3ddm;
d_pD3D->GetAdapterDisplayMode(0, &d3ddm);
D3DFORMAT format = d3ddm.Format;
D3DPRESENT_PARAMETERS d_ppars;
ZeroMemory(&d_ppars, sizeof(d_ppars));
d_ppars.BackBufferFormat = format;
d_ppars.hDeviceWindow = hwnd;
d_ppars.EnableAutoDepthStencil = TRUE;
d_ppars.AutoDepthStencilFormat = D3DFMT_D16;
d_ppars.SwapEffect = D3DSWAPEFFECT_DISCARD;
d_ppars.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
d_ppars.Windowed = true;
if (SUCCEEDED(d_pD3D->CreateDevice(0, D3DDEVTYPE_HAL, hwnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d_ppars, &d_pDevice9)))
{
d_pDevice9->SetRenderState(D3DRS_ZENABLE, true);
m_GUIRenderer = &CEGUI: irect3D9Renderer::bootstrapSystem(d_pDevice9);
return true;
}
渲染:
d_pDevice9->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, colour, 1.0f, 0);
d_pDevice9->BeginScene();
RenderImageset();
d_pDevice9->EndScene();
d_pDevice9-> resent(NULL,NULL,NULL,NULL);
请各位高手指教! |
|