The answer to the first question, as a whole, is no. Skia people don't
guarantee anything. Skia is always statically linked to google chrome for that
reason; shared library builds are there as is but not really supported. That
said, the ft2-demos skia-port code use very little of skia, and doesn't change
since m103 AFAIC.
The skia build result is more or less stable. I'd say you give it a try. The
shared libraries get deposited at out/Shared/ (configurable and can be out of
tree), and includes are in include/ and modules/ , both relative to the bottom
skia/ directory.
I would suggest getting rsvg-ports.[ch] (and rsvg/cairo) working with ftinspect
first. The bridge interface is all the same - it is just what the actual
"hooks" passed to FT_Set_Properties() is different.
The mention of skia-python is just to say what's the busy part is... out of the
~2400 API of skia, skia-port only uses 10 to 20. Well, actually I have an exact
answer:
nm -D -C /usr/bin/ftview | grep Sk | wc -l
is 35. That's inclusive of the COLRv1 code, which I have only posted the skia
side changes so far. (The ft2-demos side is still too ugly, and I am not
spending much time on it any time soon)
On Thursday, 28 September 2023 at 09:10:38 BST, Charlie Jiang
<[email protected]> wrote:
Hin-Tak,
Hello.
- About the Skia version issue, it would be extreme concerning if every
time Skia releases a new version, the bridge code has to be changed...
Is there any degree of stability guaranteed for SVG-related interfaces
(header files, class/method/function names...)?
- About the build system, is the directory structure of results from
Skia's gn build system and prebuilt Skia binaries stable? If so, we can
use something like `FindSkia.cmake` to locate the libraries and include
directories required to compile against Skia from a simple `SKIA_DIR`
CMake or Meson variable.
- About skia-python, I'm not planning to introduce skia-python or
freetype-py... Since ftinspect is a pure C++ project, I wonder if any
Python part is required to incorporate Skia into ftinspect. Glad to know
that Skia won't cause circular dependency.
Charlie Jiang