0

我正在使用 ID3DXFont::DrawText 渲染一些斜体文本。虽然我指定了 DT_NOCLIP 并且矩形足够大,但通常但不仅如此,文本的最后一个字符没有完全显示,而是从右侧切开。

可能是什么原因,我该如何解决?有任何想法吗?

4

2 回答 2

2

这是ID3DFont类中的常见故障,它不可溶解(据我所知)。当字符具有不同的字符宽度和渲染宽度时,它不会计算真实的矩形区域,主要是在计算完整句子的总矩形区域时。稀有字体(具有与其他字符重叠的渲染矩形)也肯定会被剪切。其他故障包括kerning pair,因为它根本不关心它们。经典的 AV 示例将被渲染为中间有一个空白区域。

因此,最好的解决方案是避免使用 ID3DFont,并为自己编写一个文本渲染器,或者使用 DirectWrite 等其他替代方案。

http://msdn.microsoft.com/en-us/library/dd368038%28v=vs.85%29.aspx

于 2011-06-16T12:03:02.057 回答
0

这可能是一个别名问题?也许矩形实际上还不够大?

您应该发布一些代码和问题的屏幕截图......

于 2011-05-25T00:30:47.040 回答