bool FONT::Create(LPDIRECT3DDEVICE9 dev,int s,int b,bool it,LPCWSTR st) { device=dev; D3DXCreateFontW(device,25,12,b,0,it,DEFAULT_CHARSET,0,0,DEFAULT_PITCH | FF_MODERN,st,&font); if (font==NULL) { MessageBoxW(NULL,L"Error CreateFont!",L"Error!",MB_OK); return 0; } return 1; }
D3DFontObject9::D3DFontObject9(IDirect3DDevice9 *pDevice, const FontDescription &fontDesc) { Utils::ThrowIfFailed(D3DXCreateFontW(pDevice, fontDesc.height, fontDesc.width, fontDesc.weight, fontDesc.mipLevels, fontDesc.italic, fontDesc.charSet, fontDesc.outputPrecision, fontDesc.quality, fontDesc.pitchAndFamily, fontDesc.faceName.c_str(), &m_d3dxFont)); RECT spaceRect = {0}; m_d3dxFont->DrawTextW(nullptr, L" .", 2, &spaceRect, DT_LEFT | DT_TOP | DT_SINGLELINE | DT_CALCRECT, 0); RECT pointRect = {0}; m_d3dxFont->DrawTextW(nullptr, L".", 1, &pointRect, DT_LEFT | DT_TOP | DT_SINGLELINE | DT_CALCRECT, 0); m_pointExtent.x = (pointRect.right - pointRect.left); m_pointExtent.y = (pointRect.bottom - pointRect.top); m_spaceExtent.x = (spaceRect.right - spaceRect.left) - m_pointExtent.x; m_spaceExtent.y = (spaceRect.bottom - spaceRect.top); }