void CFont::Create(const char* pFontType, int iSize, bool bBold, bool bItalic) { HRESULT hr = D3DXCreateFontA ( CDXGraphics::Get()->D3DDevice(), // Direct3D device iSize, // Font height 0, // Font width (0 = default based on height) (bBold) ? 800 : 500, // Weight (0 - 1000) 1, // MipMap level bItalic, // Use italic? DEFAULT_CHARSET, // Character set OUT_DEFAULT_PRECIS, // Output precision DEFAULT_QUALITY, // Quality DEFAULT_PITCH | FF_DONTCARE, // Pitch and font family pFontType, &mpFont ); if (FAILED(hr)) { // Write to log CLog::Get()->Write(ELogMessageType_WARNING, "[Font] Failed to create Direct3D font."); return; } }
void Direct3D::InitializeFont() { //Create/get the Windows font to be used in the D3D font //HFONT hFont = (HFONT)GetStockObject( SYSTEM_FONT ); //HFONT MyFont = CreateFontA( 0, 0, 0, 0, FW_DONTCARE, false, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, VARIABLE_PITCH, "Arial" ); // Create the D3DX Font D3DXCreateFontA( D3DDevice, 0, 0, FW_BOLD, 0, false, DEFAULT_CHARSET, OUT_TT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial", &FrostFont ); }
void GERendering::defineFont(unsigned int Font, unsigned int Height, unsigned int Width, bool Bold, bool Italic, const char* FontName) { if(Font >= FONTS) return; D3DXCreateFontA(d3ddev, Height, Width, Bold? FW_BOLD: FW_NORMAL, 0, Italic, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, TEXT(FontName), &fFonts[Font]); }
ID3DXFont *Fonts::GetFont(int fontSize,IDirect3DDevice9 *dev){ font *f = FindFont(fontSize); if(!f){ font newFont = {0}; newFont.fontSize = fontSize; if(FAILED(D3DXCreateFontA(dev,fontSize,0,FW_NORMAL,0,FALSE,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,ANTIALIASED_QUALITY,DEFAULT_PITCH | FF_DONTCARE,"Arial",&newFont.font))) return NULL; fonts.push_back(newFont); return newFont.font; } return f->font; }
//=============================================== //フォント生成 //=============================================== //[input] // fontsize:フォントサイズ // name:フォント名 //[return] // なし //=============================================== bool CFont::Create(int fontsize, LPCSTR name) { RELEASE(m_pFont); int result = D3DXCreateFontA(pD3DDevice, fontsize, fontsize, FW_REGULAR, 1, FALSE, SHIFTJIS_CHARSET, OUT_DEFAULT_PRECIS, PROOF_QUALITY, FIXED_PITCH | FF_MODERN, _T(name), &m_pFont); if(name != NULL) { name = "MS UI Gothic"; } return (result == 0) ? false : true; }
GameMenuManager::GameMenuManager() { _MESSAGE("Starting the menu manager..."); TheGameMenuManager = this; SelectedColumn = 0; SelectedRow[0] = SelectedRow[1] = SelectedRow[2] = SelectedRow[3] = 0; SelectedPage[0] = SelectedPage[1] = SelectedPage[2] = SelectedPage[3] = 0; Enabled = false; EditingMode = false; FrameRateText = 0; LastFrameRateTextTime = 0; SelectedSetting[0] = '\0'; InfoText[0] = '\0'; SetRect(&RectInfo, InfoPositionX, InfoPositionY, InfoPositionX + InfoColumnSize, InfoPositionY + RowSpace + TextSize * 2); SetRect(&RectInfoShadow, RectInfo.left + 1, RectInfo.top + 1, RectInfo.right + 1, RectInfo.bottom + 1); D3DXCreateFontA(TheRenderManager->device, TextSize, 0, FW_NORMAL, 1, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE, TextFont, &FontNormal); D3DXCreateFontA(TheRenderManager->device, TextSize, 0, FW_BOLD, 1, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE, TextFont, &FontSelected); D3DXCreateFontA(TheRenderManager->device, TextSizeStatus, 0, FW_NORMAL, 1, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE, TextFontStatus, &FontStatus); strcpy(IntValues, "ScreenshotKey GrassDensity LightShaftPasses CombatEquipmentKey TorchKey Average Min Critical Gap Delay FadeStep FadeMinObjects FadeMinActors GridStep GridMin TimeKey DayR DayG DayB NightR NightG NightB SunriseR SunriseG SunriseB SunsetR SunsetG SunsetB CloudSpeedLower CloudSpeedUpper SunGlare SunDamage TransDelta WindSpeed"); strcpy(BoolValues, "Enabled DialogMode Rest DistantBlur SunGlareEnabled TimeEnabled FPSOverlay SleepingEquipment SwimmingEquipment PurgeCells PurgeTextures FatigueEnabled HealthEnabled InfoEnabled"); }
static void test_ID3DXFont(IDirect3DDevice9 *device) { D3DXFONT_DESC desc; ID3DXFont *font; HRESULT hr; int ref; /* D3DXCreateFont */ ref = get_ref((IUnknown*)device); hr = D3DXCreateFontA(device, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial", &font); ok(hr == D3D_OK, "D3DXCreateFont returned %#x, expected %#x\n", hr, D3D_OK); check_ref((IUnknown*)device, ref + 1); check_release((IUnknown*)font, 0); check_ref((IUnknown*)device, ref); hr = D3DXCreateFontA(device, 0, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial", &font); ok(hr == D3D_OK, "D3DXCreateFont returned %#x, expected %#x\n", hr, D3D_OK); ID3DXFont_Release(font); hr = D3DXCreateFontA(device, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, NULL, &font); ok(hr == D3D_OK, "D3DXCreateFont returned %#x, expected %#x\n", hr, D3D_OK); ID3DXFont_Release(font); hr = D3DXCreateFontA(device, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "", &font); ok(hr == D3D_OK, "D3DXCreateFont returned %#x, expected %#x\n", hr, D3D_OK); ID3DXFont_Release(font); hr = D3DXCreateFontA(NULL, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial", &font); ok(hr == D3DERR_INVALIDCALL, "D3DXCreateFont returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); hr = D3DXCreateFontA(device, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial", NULL); ok(hr == D3DERR_INVALIDCALL, "D3DXCreateFont returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); hr = D3DXCreateFontA(NULL, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial", NULL); ok(hr == D3DERR_INVALIDCALL, "D3DXCreateFont returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); /* D3DXCreateFontIndirect */ desc.Height = 12; desc.Width = 0; desc.Weight = FW_DONTCARE; desc.MipLevels = 0; desc.Italic = FALSE; desc.CharSet = DEFAULT_CHARSET; desc.OutputPrecision = OUT_DEFAULT_PRECIS; desc.Quality = DEFAULT_QUALITY; desc.PitchAndFamily = DEFAULT_PITCH; strcpy(desc.FaceName, "Arial"); hr = D3DXCreateFontIndirectA(device, &desc, &font); ok(hr == D3D_OK, "D3DXCreateFontIndirect returned %#x, expected %#x\n", hr, D3D_OK); ID3DXFont_Release(font); hr = D3DXCreateFontIndirectA(NULL, &desc, &font); ok(hr == D3DERR_INVALIDCALL, "D3DXCreateFontIndirect returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); hr = D3DXCreateFontIndirectA(device, NULL, &font); ok(hr == D3DERR_INVALIDCALL, "D3DXCreateFontIndirect returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); hr = D3DXCreateFontIndirectA(device, &desc, NULL); ok(hr == D3DERR_INVALIDCALL, "D3DXCreateFontIndirect returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); /* ID3DXFont_GetDevice */ hr = D3DXCreateFontA(device, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial", &font); if(SUCCEEDED(hr)) { IDirect3DDevice9 *bufdev; hr = ID3DXFont_GetDevice(font, NULL); ok(hr == D3DERR_INVALIDCALL, "ID3DXFont_GetDevice returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); ref = get_ref((IUnknown*)device); hr = ID3DXFont_GetDevice(font, &bufdev); ok(hr == D3D_OK, "ID3DXFont_GetDevice returned %#x, expected %#x\n", hr, D3D_OK); check_release((IUnknown*)bufdev, ref); ID3DXFont_Release(font); } else skip("Failed to create a ID3DXFont object\n"); /* ID3DXFont_GetDesc */ hr = D3DXCreateFontA(device, 12, 8, FW_BOLD, 2, TRUE, ANSI_CHARSET, OUT_RASTER_PRECIS, ANTIALIASED_QUALITY, VARIABLE_PITCH, "Arial", &font); if(SUCCEEDED(hr)) { hr = ID3DXFont_GetDescA(font, NULL); ok(hr == D3DERR_INVALIDCALL, "ID3DXFont_GetDevice returned %#x, expected %#x\n", hr, D3DERR_INVALIDCALL); hr = ID3DXFont_GetDescA(font, &desc); ok(hr == D3D_OK, "ID3DXFont_GetDevice returned %#x, expected %#x\n", hr, D3D_OK); ok(desc.Height == 12, "ID3DXFont_GetDesc returned font height %d, expected %d\n", desc.Height, 12); ok(desc.Width == 8, "ID3DXFont_GetDesc returned font width %d, expected %d\n", desc.Width, 8); ok(desc.Weight == FW_BOLD, "ID3DXFont_GetDesc returned font weight %d, expected %d\n", desc.Weight, FW_BOLD); ok(desc.MipLevels == 2, "ID3DXFont_GetDesc returned font miplevels %d, expected %d\n", desc.MipLevels, 2); ok(desc.Italic == TRUE, "ID3DXFont_GetDesc says Italic was %d, but Italic should be %d\n", desc.Italic, TRUE); ok(desc.CharSet == ANSI_CHARSET, "ID3DXFont_GetDesc returned font charset %d, expected %d\n", desc.CharSet, ANSI_CHARSET); ok(desc.OutputPrecision == OUT_RASTER_PRECIS, "ID3DXFont_GetDesc returned an output precision of %d, expected %d\n", desc.OutputPrecision, OUT_RASTER_PRECIS); ok(desc.Quality == ANTIALIASED_QUALITY, "ID3DXFont_GetDesc returned font quality %d, expected %d\n", desc.Quality, ANTIALIASED_QUALITY); ok(desc.PitchAndFamily == VARIABLE_PITCH, "ID3DXFont_GetDesc returned pitch and family %d, expected %d\n", desc.PitchAndFamily, VARIABLE_PITCH); ok(strcmp(desc.FaceName, "Arial") == 0, "ID3DXFont_GetDesc returned facename \"%s\", expected \"%s\"\n", desc.FaceName, "Arial"); ID3DXFont_Release(font); } else skip("Failed to create a ID3DXFont object\n"); /* ID3DXFont_GetDC + ID3DXFont_GetTextMetrics */ hr = D3DXCreateFontA(device, 12, 0, FW_DONTCARE, 0, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, "Arial", &font); if(SUCCEEDED(hr)) { HDC hdc; hdc = ID3DXFont_GetDC(font); ok(hdc != NULL, "ID3DXFont_GetDC returned an invalid handle\n"); if(hdc) { TEXTMETRICA metrics, expmetrics; BOOL ret; ret = ID3DXFont_GetTextMetricsA(font, &metrics); ok(ret, "ID3DXFont_GetTextMetricsA failed\n"); ret = GetTextMetricsA(hdc, &expmetrics); ok(ret, "GetTextMetricsA failed\n"); ok(metrics.tmHeight == expmetrics.tmHeight, "Returned height %d, expected %d\n", metrics.tmHeight, expmetrics.tmHeight); ok(metrics.tmAscent == expmetrics.tmAscent, "Returned ascent %d, expected %d\n", metrics.tmAscent, expmetrics.tmAscent); ok(metrics.tmDescent == expmetrics.tmDescent, "Returned descent %d, expected %d\n", metrics.tmDescent, expmetrics.tmDescent); ok(metrics.tmInternalLeading == expmetrics.tmInternalLeading, "Returned internal leading %d, expected %d\n", metrics.tmInternalLeading, expmetrics.tmInternalLeading); ok(metrics.tmExternalLeading == expmetrics.tmExternalLeading, "Returned external leading %d, expected %d\n", metrics.tmExternalLeading, expmetrics.tmExternalLeading); ok(metrics.tmAveCharWidth == expmetrics.tmAveCharWidth, "Returned average char width %d, expected %d\n", metrics.tmAveCharWidth, expmetrics.tmAveCharWidth); ok(metrics.tmMaxCharWidth == expmetrics.tmMaxCharWidth, "Returned maximum char width %d, expected %d\n", metrics.tmMaxCharWidth, expmetrics.tmMaxCharWidth); ok(metrics.tmWeight == expmetrics.tmWeight, "Returned weight %d, expected %d\n", metrics.tmWeight, expmetrics.tmWeight); ok(metrics.tmOverhang == expmetrics.tmOverhang, "Returned overhang %d, expected %d\n", metrics.tmOverhang, expmetrics.tmOverhang); ok(metrics.tmDigitizedAspectX == expmetrics.tmDigitizedAspectX, "Returned digitized x aspect %d, expected %d\n", metrics.tmDigitizedAspectX, expmetrics.tmDigitizedAspectX); ok(metrics.tmDigitizedAspectY == expmetrics.tmDigitizedAspectY, "Returned digitized y aspect %d, expected %d\n", metrics.tmDigitizedAspectY, expmetrics.tmDigitizedAspectY); ok(metrics.tmFirstChar == expmetrics.tmFirstChar, "Returned first char %d, expected %d\n", metrics.tmFirstChar, expmetrics.tmFirstChar); ok(metrics.tmLastChar == expmetrics.tmLastChar, "Returned last char %d, expected %d\n", metrics.tmLastChar, expmetrics.tmLastChar); ok(metrics.tmDefaultChar == expmetrics.tmDefaultChar, "Returned default char %d, expected %d\n", metrics.tmDefaultChar, expmetrics.tmDefaultChar); ok(metrics.tmBreakChar == expmetrics.tmBreakChar, "Returned break char %d, expected %d\n", metrics.tmBreakChar, expmetrics.tmBreakChar); ok(metrics.tmItalic == expmetrics.tmItalic, "Returned italic %d, expected %d\n", metrics.tmItalic, expmetrics.tmItalic); ok(metrics.tmUnderlined == expmetrics.tmUnderlined, "Returned underlined %d, expected %d\n", metrics.tmUnderlined, expmetrics.tmUnderlined); ok(metrics.tmStruckOut == expmetrics.tmStruckOut, "Returned struck out %d, expected %d\n", metrics.tmStruckOut, expmetrics.tmStruckOut); ok(metrics.tmPitchAndFamily == expmetrics.tmPitchAndFamily, "Returned pitch and family %d, expected %d\n", metrics.tmPitchAndFamily, expmetrics.tmPitchAndFamily); ok(metrics.tmCharSet == expmetrics.tmCharSet, "Returned charset %d, expected %d\n", metrics.tmCharSet, expmetrics.tmCharSet); } ID3DXFont_Release(font); } else skip("Failed to create a ID3DXFont object\n"); }
unsigned long D9Draw::CreateFontA(const char* name, int size, int weight) { ID3DXFont* nativeFont = 0; D3DXCreateFontA(this->device, size, 0, 0, 0, false, 1, OUT_CHARACTER_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, name, &nativeFont); return reinterpret_cast<long>(nativeFont); }