public void GetGlyphsTest() { TestRuntime.AssertSystemVersion(ApplePlatform.iOS, 7, 0, throwIfOtherPlatform: false); using (var txt = new NSTextStorage()) { var str = "hello world\n\t"; txt.SetString(new NSAttributedString(str)); using (var lm = new NSLayoutManager()) { lm.TextStorage = txt; var glyphs = new short[str.Length]; var props = new NSGlyphProperty [glyphs.Length]; var charIndexBuffer = new nuint [glyphs.Length]; var bidiLevelBuffer = new byte [glyphs.Length]; lm.GetGlyphs(new NSRange(0, str.Length), glyphs, props, charIndexBuffer, bidiLevelBuffer); Assert.That(glyphs, Is.EqualTo(new short [] { 75, 72, 79, 79, 82, 3, 90, 82, 85, 79, 71, -1, -1 }), "glyphs"); Assert.That(props, Is.EqualTo(new NSGlyphProperty [] { 0, 0, 0, 0, 0, NSGlyphProperty.Elastic, 0, 0, 0, 0, 0, NSGlyphProperty.ControlCharacter, NSGlyphProperty.ControlCharacter }), "props"); Assert.That(charIndexBuffer, Is.EqualTo(new nuint [] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }), "charIndexBuffer"); Assert.That(bidiLevelBuffer, Is.EqualTo(new byte [str.Length]), "bidiLevelBuffer"); } } using (var txt = new NSTextStorage()) { var str = "hello world\n\t"; txt.SetString(new NSAttributedString(str)); using (var lm = new NSLayoutManager()) { lm.TextStorage = txt; var glyphs = new short[str.Length]; var charIndexBuffer = new nuint [glyphs.Length]; var bidiLevelBuffer = new byte [glyphs.Length]; lm.GetGlyphs(new NSRange(0, str.Length), glyphs, null, charIndexBuffer, bidiLevelBuffer); Assert.That(glyphs, Is.EqualTo(new short [] { 75, 72, 79, 79, 82, 3, 90, 82, 85, 79, 71, -1, -1 }), "glyphs"); Assert.That(charIndexBuffer, Is.EqualTo(new nuint [] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }), "charIndexBuffer"); Assert.That(bidiLevelBuffer, Is.EqualTo(new byte [str.Length]), "bidiLevelBuffer"); } } }
public void GetGlyphsTest() { if (!TestRuntime.CheckSystemAndSDKVersion(7, 0)) { Assert.Ignore("requires iOS7+"); } using (var txt = new NSTextStorage()) { var str = "hello world\n\t"; txt.SetString(new NSAttributedString(str)); using (var lm = new NSLayoutManager()) { lm.TextStorage = txt; var glyphs = new short[str.Length]; var props = new NSGlyphProperty [glyphs.Length]; var charIndexBuffer = new nuint [glyphs.Length]; var bidiLevelBuffer = new byte [glyphs.Length]; lm.GetGlyphs(new NSRange(0, str.Length), glyphs, props, charIndexBuffer, bidiLevelBuffer); Assert.That(glyphs, Is.EqualTo(new short [] { 75, 72, 79, 79, 82, 3, 90, 82, 85, 79, 71, -1, -1 }), "glyphs"); Assert.That(props, Is.EqualTo(new NSGlyphProperty [] { 0, 0, 0, 0, 0, NSGlyphProperty.Elastic, 0, 0, 0, 0, 0, NSGlyphProperty.ControlCharacter, NSGlyphProperty.ControlCharacter }), "props"); Assert.That(charIndexBuffer, Is.EqualTo(new nuint [] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }), "charIndexBuffer"); Assert.That(bidiLevelBuffer, Is.EqualTo(new byte [str.Length]), "bidiLevelBuffer"); } } }