首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在directx-11中使用指定的字体

在directx-11中使用指定的字体
EN

Stack Overflow用户
提问于 2015-06-29 10:05:04
回答 1查看 803关注 0票数 1

我想在DirectX 11中使用指定的字体文件

搜索后,我被困在创建一个自定义字体集合。

加载指定字体文件的代码:

代码语言:javascript
复制
Platform::String^ pathTEST;
Microsoft::WRL::ComPtr<IDWriteFontFile> fontFileTEST;
Microsoft::WRL::ComPtr<IDWriteFontFileLoader> fontFileLoaderTEST;

Windows::Storage::StorageFolder^ folder = Windows::Storage::ApplicationData::Current->LocalFolder;
pathTEST = folder->Path + L"\\Bubblegum.ttf";//#BubbleGum
HRESULT hr = S_OK;

if (SUCCEEDED(hr))
    hr = dwriteFactory->CreateFontFileReference(pathTEST->Data(), NULL, &fontFileTEST);

if (SUCCEEDED(hr))
    hr = fontFileTEST->GetLoader(&fontFileLoaderTEST);

if (SUCCEEDED(hr))
    hr = dwriteFactory->RegisterFontFileLoader(fontFileLoaderTEST.Get());

应该使用字体的代码,但我缺少了font集合:

代码语言:javascript
复制
MyIDWriteFactory2->CreateTextFormat(
    L"BubbleGum", MyWriteFontCollection (nullptr for the moment),
    DWRITE_FONT_WEIGHT_LIGHT, DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STRETCH_NORMAL,
    16.0f, L"en-us", &MyIDWriteTextFormat);

我使用像Arial这样的系统字体没有任何问题。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-02 09:40:24

在再次阅读了尝试使用自定义字体文件使用DirectX -集合键是什么?自定义字体集合之后,我开始了解如何获得自定义集合。

基于以下原因,我修改了Microsoft提供的示例代码:

  • 在Windows应用程序中,它不允许使用GetModuleHandle。我直接使用CreateFontFileReference,而不是在ResourceFontFileEnumerator中使用CreateCustomFontFileReference。
  • 它在应用程序中使用字体,但在我的示例中,字体位于用户提供的另一个文件中。因此,我使用了一项工作,通过ResourceFontContext::CreateFontCollection给出了字体到ResourceFontFileEnumerator的路径列表

现在,它工作得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31112857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档