HGE是个好东西,不过08年就停止更新了,而且不支持unicode,中文字体也支持不好,最不好的,停留在DX8时代。很久前Google了HGE的中文字体解决方案后,从HGE中文论坛中down下HGE某人修改的DirectX9.0 unicode版本。一直使用,最近在使用RenderTarget时,发现其Target表面不能正确的Clear。将DX切换到调试版,提示Depth stencil buffer设置有问题,立马核对修改前后的版本,发现在graphics.cpp的Gfx_BeginScene函数中,添加红色部分代码,就可以解决这个问题
if(FAILED(pD3DDevice->SetDepthStencilSurface( pDepth )))
{
if(target) pSurf->Release();
_PostError(L"Gfx_BeginScene: Can't set DepthStencilSurface");
return false;
}
if(FAILED(pD3DDevice->SetRenderTarget(0, pSurf)))
{
if(target) pSurf->Release();
_PostError(L"Gfx_BeginScene: Can't set render target");
return false;
}