public unsafe bool TryGetGlyphName(uint glyph, out string name) { var buffer = ArrayPool <char> .Shared.Rent(NameBufferLength); try { fixed(char *first = buffer) { if (!HarfBuzzApi.hb_font_get_glyph_name(Handle, glyph, first, buffer.Length)) { name = string.Empty; return(false); } name = new string (first); return(true); } } finally { ArrayPool <char> .Shared.Return(buffer); } }
public unsafe bool TryGetGlyphName(uint glyph, out string name) { var buffer = ArrayPool <byte> .Shared.Rent(NameBufferLength); try { fixed(byte *first = buffer) { if (!HarfBuzzApi.hb_font_get_glyph_name(Handle, glyph, first, buffer.Length)) { name = string.Empty; return(false); } name = Marshal.PtrToStringAnsi((IntPtr)first); return(true); } } finally { ArrayPool <byte> .Shared.Return(buffer); } }