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;
}