public bool TryGetGlyphExtents(uint glyph, out GlyphExtents extents) { fixed(GlyphExtents *e = &extents) { return(HarfBuzzApi.hb_font_get_glyph_extents(Handle, glyph, e)); } }
public void ShouldSetGlyphExtentsDelegate() { using (var font = new Font(Font)) using (var fontFuncs = new FontFunctions()) { var expected = new GlyphExtents { Height = 1337 }; fontFuncs.SetGlyphExtentsDelegate((Font f, object fd, uint g, out GlyphExtents e) => { e = expected; return(true); }); fontFuncs.MakeImmutable(); font.SetFontFunctions(fontFuncs, "FontData"); var result = font.TryGetGlyphExtents('H', out var extents); Assert.True(result); Assert.Equal(expected, extents); } }
public bool TryGetGlyphExtents(uint glyph, out GlyphExtents extents) => HarfBuzzApi.hb_font_get_glyph_extents(Handle, glyph, out extents);
public extern static bool hb_font_get_glyph_extents(hb_font_t font, hb_codepoint_t glyph, out GlyphExtents extents);
private static bool GlyphExtentsProxyImplementation(IntPtr font, IntPtr fontData, uint glyph, out GlyphExtents extents, IntPtr context) { var del = GetMulti <GlyphExtentsDelegate> (context, out _); var userData = GetUserData <FontUserData> (fontData); return(del.Invoke(userData.Font, userData.FontData, glyph, out extents)); }