//Step1 定义
#include <iostream>
ID3DXFont *pFont = NULL;
DWORD FrameCnt = 0;
float TimeElapsed = 0;
float FPS = 0;
char FPSString[9] = {0};
bool Setup()
{
//Step3 创建字体
D3DXFONT_DESC desc; //不能ZeroMemory 否则会出错
desc.CharSet = DEFAULT_CHARSET;
strcpy(desc.FaceName,"宋体");
desc.Height = 32;
desc.Italic = true;
desc.MipLevels = 1;
desc.OutputPrecision = OUT_DEFAULT_PRECIS;
desc.PitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
desc.Quality = 5;
desc.Weight = 800;
desc.Width = 0;
if(FAILED(D3DXCreateFontIndirect(Device,&desc,&pFont)))
{
::MessageBox(NULL,"D3DXCreateFontIndirect Failed",NULL,0);
return false;
}
return true;
}
void Cleanup()
{
//Step2 释放
d3d::Release<ID3DXFont*>(pFont);
d3d::Release<IDirect3DDevice9*>(Device);
}
bool Display(float timeDelta)
{
if(Device)
{
FrameCnt++;
TimeElapsed += timeDelta;
if(TimeElapsed >= 1.0f)
{
FPS = (float)FrameCnt / TimeElapsed;
sprintf(FPSString,"%f",FPS);
FPSString[8] = '\0';
TimeElapsed = 0.f;
FrameCnt = 0;
}
Device->Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,0xffffffff,1.0f,0);
Device->BeginScene();
//Step4 绘制
RECT rect = {0, 0, Width, Height};
pFont->DrawText(NULL,FPSString,-1,&rect,DT_TOP|DT_LEFT,0xff000000);
Device->EndScene();
Device->Present(NULL,NULL,NULL,NULL);
}
return true;
}
ID3DXFont
最新推荐文章于 2014-06-27 17:14:20 发布