Directx 为什么有些字符不是';使用Direct X渲染斜体文本时,不完全显示

Directx 为什么有些字符不是';使用Direct X渲染斜体文本时,不完全显示,directx,drawtext,text-rendering,italic,Directx,Drawtext,Text Rendering,Italic,我正在使用ID3DXFont::DrawText呈现一些斜体文本。虽然我指定了DT_NOCLIP,并且矩形足够大,但通常,但不仅仅是文本的最后一个字符没有完全显示出来,而是从其右侧切下 原因是什么?我如何解决?有什么想法吗?这可能是一个别名问题?也许矩形实际上不够大 您应该发布一些代码和问题的屏幕截图…这是ID3DFont类中的常见故障,无法解决(据我所知)。当字符具有不同的字符宽度和渲染宽度时,它不会计算实际矩形区域,主要是在计算完整句子的总矩形区域时。 此外,罕见的字体(具有与其他字符重叠的

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


原因是什么?我如何解决?有什么想法吗?

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


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

这是ID3DFont类中的常见故障,无法解决(据我所知)。当字符具有不同的字符宽度和渲染宽度时,它不会计算实际矩形区域,主要是在计算完整句子的总矩形区域时。 此外,罕见的字体(具有与其他字符重叠的渲染矩形)也将被剪切。 其他故障包括紧排对,因为它根本不关心它们。经典的AV示例将呈现为中间有一个空格。

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


我确信矩形足够大。以下是我如何确定的:我将两个不同的文本绘制成一个矩形,其中一个与DT_左对齐,另一个与DT_右对齐。它们之间有一定距离,表示矩形足够宽。但是,当其中任何一个是斜体时(不管是左边的还是右边的),斜体文本的某些字母(不一定是最后一个)会显示一半,也就是说,它们的右边部分不会显示。我会尽量提供一些截图,但我不确定我是否可以