从DirectWrite渲染到Direct3D11的最短路径?

时间:2011-07-24 20:57:10

标签: direct3d directwrite

自从我学习DirectX 7以来,人类发生了很大的变化。

我看的每个地方(Wikipedia除外),它说我必须先从DWrite渲染到D2D或GDI才能做任何事情。

维基百科的文章是错的吗?我可以不渲染到Direct3D吗?

我想避免渲染到D2D,因为很明显,要让D2D写入D3D,你必须打开一个D3D10.1设备。

在D3D11中渲染文本真的需要这么做吗?

1 个答案:

答案 0 :(得分:2)

不幸的是,Microsoft决定从他们的DirectX API中删除本机文本支持。现在你可以使用DirectWrite,然后如你所说的渲染到GDI或D2D,这有点笨重,或者替代地,制作你自己的字体处理类,并使用它(这是我选择为我的项目做的) )。

有一个关于如何生成自定义字体处理类的好教程,在这里:http://www.rastertek.com/dx11tut12.html

显然,你应该编写自己的,但它提供了一个很好的起点,并允许你看到所有必要的进程(你可能想要添加的东西将支持多种字体,我建议创建一个字体class,您的Font-Handler在std :: map< char *,Font *>)中使用关联字符串存储。

希望这有帮助! :)