Почему некоторые символы не отображаются полностью при отображении курсивного текста в Direct X - PullRequest
0 голосов
/ 24 мая 2011

Я рендеринг текста курсивом, используя ID3DXFont :: DrawText. Хотя я указываю DT_NOCLIP и прямоугольник достаточно большой, обычно, но не только, последний символ текста отображается не полностью, а скорее вырезан с правой стороны.

В чем может быть причина и как я могу это исправить? Есть идеи?

Ответы [ 2 ]

2 голосов
/ 16 июня 2011

Это распространенная неисправность в классе ID3DFont , и она не разрешима (насколько я знаю).Он не вычисляет реальные прямоугольные области, когда символы имеют различную ширину символов и ширину рендеринга, в основном при вычислении общей площади прямоугольника полного предложения.Также редкие шрифты (которые имеют прямоугольники рендеринга перекрывают другие символы) также будут вырезаны наверняка.Другие неисправности включают кернинг-пары с, так как они просто не заботятся о них.Классический пример AV будет отображаться так, как если бы он имел пробел посередине.

Из-за этого лучшим решением будет избежать ID3DFont и кодировать себя как средство визуализации текста илииспользуйте другие альтернативы, такие как DirectWrite.

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

0 голосов
/ 25 мая 2011

Это может быть проблема с алиасами? Возможно, прямоугольник на самом деле недостаточно большой?

Вы должны опубликовать некоторый код и скриншот проблемы, хотя ...

...