[]
IDWriteTextAnalysisSink1
[Guid("B0D941A0-85E7-4D8B-9FD3-5CED9934482A")]
[Shadow(typeof(TextAnalysisSink1Shadow))]
public interface ITextAnalysisSink1 : ITextAnalysisSink, ICallbackable, IDisposable
The text analyzer calls back to this to report the actual orientation of each character for shaping and drawing.
void SetGlyphOrientation(int textPosition, int textLength, GlyphOrientationAngle glyphOrientationAngle, byte adjustedBidiLevel, Bool isSideways, Bool isRightToLeft)
textPosition
intThe starting position to report from.
textLength
intNumber of UTF-16 units of the reported range.
glyphOrientationAngle
GlyphOrientationAngleA GlyphOrientationAngle-typed value that specifies the angle of the glyphs within the text range (pass to GetGlyphOrientationTransform(GlyphOrientationAngle, Bool, out Matrix3x2) to get the world relative transform).
adjustedBidiLevel
byteThe adjusted bidi level to be used by the client layout for reordering runs. This will differ from the resolved bidi level retrieved from the source for cases such as Arabic stacked top-to-bottom, where the glyphs are still shaped as RTL, but the runs are TTB along with any CJK or Latin.
isSideways
BoolWhether the glyphs are rotated on their side, which is the default case for CJK and the case stacked Latin
isRightToLeft
BoolWhether the script should be shaped as right-to-left. For Arabic stacked top-to-bottom, even when the adjusted bidi level is coerced to an even level, this will still be true.