自从我学习DirectX 7以来,人类发生了很大的变化。
我看的每个地方(Wikipedia除外),它说我必须先从DWrite渲染到D2D或GDI才能做任何事情。
维基百科的文章是错的吗?我可以不渲染到Direct3D吗?
我想避免渲染到D2D,因为很明显,要让D2D写入D3D,你必须打开一个D3D10.1设备。
在D3D11中渲染文本真的需要这么做吗?
答案 0 :(得分:2)
不幸的是,Microsoft决定从他们的DirectX API中删除本机文本支持。现在你可以使用DirectWrite,然后如你所说的渲染到GDI或D2D,这有点笨重,或者替代地,制作你自己的字体处理类,并使用它(这是我选择为我的项目做的) )。
有一个关于如何生成自定义字体处理类的好教程,在这里:http://www.rastertek.com/dx11tut12.html
显然,你应该编写自己的,但它提供了一个很好的起点,并允许你看到所有必要的进程(你可能想要添加的东西将支持多种字体,我建议创建一个字体class,您的Font-Handler在std :: map< char *,Font *>)中使用关联字符串存储。
希望这有帮助! :)