IDWriteTextAnalysisSink
/を使用AnalyzeScript
して、LTR (英語) と RTL (ヘブライ語) の混合テキストを DirectWrite (C++) で表示し、テキスト幅を次のように計算します。
textwidth = 0;
for (UINT glyph=0; glyph<actualGlyphCount; glyph++)
textwidth += glyphAdvances[glyph];
からglyphAdvances
返されGetGlyphPlacements
ます。
ただし、右から左へのテキストの場合、これは不正確であることが多く、テキストが重なるなどの原因になります。これは正しい方法ですか?
ありがとう。