Beispiel #1
0
 public bool TryGetGlyphExtents(uint glyph, out GlyphExtents extents)
 {
     fixed(GlyphExtents *e = &extents)
     {
         return(HarfBuzzApi.hb_font_get_glyph_extents(Handle, glyph, e));
     }
 }
Beispiel #2
0
        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);
                }
        }
Beispiel #3
0
 public bool TryGetGlyphExtents(uint glyph, out GlyphExtents extents) =>
 HarfBuzzApi.hb_font_get_glyph_extents(Handle, glyph, out extents);
Beispiel #4
0
 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));
        }