On 11/05/2019 10:39, Eli Zaretskii wrote:
Is it possible to create a hb_face_t without going through Freetype?
If so, could someone please tell what that would entail?
You can use hb_face_create_for_tables, passing it a function that can
retrieve font tables (as hb_blobs) when requested by harfbuzz.
This is what Firefox does, to use harfbuzz with Windows or MacOS font
APIs; a starting point to explore the Firefox code would be [1], where
we call hb_face_create_for_tables and pass it HBGetTable as the
reference_table_func. This calls down to the GetFontTable() method,
which has separate implementations for the various platforms.
JK
[1]
https://searchfox.org/mozilla-central/rev/b418634cb3fe83ebb8d2c019cc1ba76974da1a0d/gfx/thebes/gfxFontEntry.cpp#587
The tutorial only shows how to create hb_font_t using Freetype, and I
found no other documentation related to this, except the functions'
signatures. The implementations of hb_ft_face_create and
hb_ft_face_create look deceptively simple, so maybe it wouldn't be
hard to implement something similar without going through Freetype.
But the question is what is needed from the data stashed away by
hb_blob_create, and where is that data used? I guess there are some
callbacks specific to Freetype which the HarfBuzz shaper needs, and
those callbacks need to access the blob data? But none of that seems
to be documented.
Could someone please post some information about these issues, or
point me to existing documentation if I missed it?
The context for these questions is WIP to add a HarfBuzz shaping
capabilities to Emacs on MS-Windows. The existing HarfBuzz
integration, for Posix platforms, uses Freetype, because Freetype is
already used by Emacs on Posix systems to access font capabilities.
But on Windows Emacs uses native Windows interfaces to access and
utilize font and text metrics data, so going through Freetype would
probably add interfaces whose equivalents already exist. The question
is how to use those equivalents to give HarfBuzz what it needs.
TIA
_______________________________________________
HarfBuzz mailing list
HarfBuzz@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/harfbuzz
_______________________________________________
HarfBuzz mailing list
HarfBuzz@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/harfbuzz