|
|
// 这是微软的一个例子,用来生成一个3D的字体Mesh
HRESULT CreateD3DXTextMesh( IDirect3DDevice9* pd3dDevice,
LPD3DXMESH* ppMesh,
TCHAR* pstrFont, DWORD dwSize,
BOOL bBold, BOOL bItalic )
{
HRESULT hr;
LPD3DXMESH pMeshNew = NULL;
HDC hdc = CreateCompatibleDC( NULL );
if( hdc == NULL )
return E_OUTOFMEMORY;
INT nHeight = -MulDiv( dwSize, GetDeviceCaps(hdc, LOGPIXELSY), 72 );
HFONT hFont;
HFONT hFontOld;
hFont = CreateFont(nHeight, 0, 0, 0, bBold ? FW_BOLD : FW_NORMAL, bItalic, FALSE, FALSE, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, pstrFont);
hFontOld = (HFONT)SelectObject(hdc, hFont);
hr = D3DXCreateText( pd3dDevice, hdc, L"This is calling D3DXCreateText",
0.001f, 0.4f, &pMeshNew, NULL, NULL);
SelectObject(hdc, hFontOld);
DeleteObject( hFont );
DeleteDC( hdc );
if( SUCCEEDED( hr ) )
*ppMesh = pMeshNew;
return hr;
} |
|