0

ID3DXFont::DrawText を使用してイタリック体のテキストをレンダリングしています。私は DT_NOCLIP を指定し、長方形は十分に大きいですが、通常、テキストの最後の文字は完全には表示されず、右側から切り取られます。

何が原因で、どうすれば修正できますか? 何か案は?

4

2 に答える 2

2

これは、ID3DFontクラスでよくある誤動作であり、(私が知っているように) 解決できません。文字の幅とレンダリング幅が異なる場合、主に完全な文の合計四角形面積を計算する場合、実際の四角形面積は計算されません。また、まれなフォント (レンダリング長方形が他の文字と重なっている) も確実にカットされます。他の誤動作には、単にそれらを気にしないカーニング ペアが含まれます。従来の 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 に答える