On 11/05/2019 20:38, Eli Zaretskii wrote:
Cc: Behdad Esfahbod <[email protected]>,
"[email protected]" <[email protected]>
From: Jonathan Kew <[email protected]>
Date: Sat, 11 May 2019 20:11:17 +0100
Yes. The font file. Maybe describe what you are trying to do?
If you've got access to the font as a file or as a single buffer in
memory, then wrapping the entire thing as a blob and handing it to
hb_face_create will be simplest.
Would wrapping in a blob the buffer returned by GetFontData be enough?
If you use GetFontData to get the complete font as a single buffer (i.e.
pass zero for the dwTable parameter), yes.
Alternatively, you could use hb_face_create_for_tables, with a
reference_table_func that uses GetFontData to read individual tables
when harfbuzz asks for them.
In a case where you don't necessarily have easy access to the complete
font file, but have platform APIs that you can use to retrieve specific
font tables (like IDWriteFontFace::TryGetFontTable on Windows, or
CGFontCopyTableForTag on macOS), that's where you might prefer to use
hb_face_create_for_tables (like Firefox does). This expects you to
provide a reference_table_func that will return a blob containing the
data of any given font table (identified by its 32-bit OpenType table tag).
So there should be a function for each of the OpenType table tag, each
function returning a pointer to the table's data?
There's a single reference_table_func that is passed a table tag and
returns a blob for the requested table. How that reference_table_func is
implemented is up to you, depending on what the platform provides; in
practice, most platforms offer a single function that similarly accepts
a table tag and returns that table.
HTH,
JK
_______________________________________________
HarfBuzz mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/harfbuzz