Extract the FemtoVG renderer into a separate crate

This will be needed for a future experiment. Unlike the Skia renderer,
which operates on raw window handles, the FemtoVG renderer exposes a
different interface where it assumes that the caller takes care of the
OpenGL context state. This means more boilerplate remains in the winit
backend, including the glutin dependency. The upside is that it will
allow using the FemtoVG renderer in environments without glutin.

In order to work in an environment without fontconfig or memmap, the
crate has two features:

  - fontconfig (set when we anticipate fontconfig to be available at
    run-time and libloading being available at compile time).
  - diskfonts (set when we want to be able to load fonts from disk)

The winit crate enables fontconfig on "Linux" and diskfonts on !wasm.
This commit is contained in:
Simon Hausmann 2023-01-27 15:59:25 +01:00 committed by Simon Hausmann
parent bea263a447
commit 6d968aa329
18 changed files with 670 additions and 479 deletions

View file

@ -10,6 +10,7 @@ cargo publish --manifest-path internal/core/Cargo.toml
sleep 15
cargo publish --manifest-path api/rs/macros/Cargo.toml
cargo publish --manifest-path internal/renderers/skia/Cargo.toml
cargo publish --manifest-path internal/renderers/femtovg/Cargo.toml
cargo publish --manifest-path internal/backends/winit/Cargo.toml --features x11,renderer-winit-femtovg
cargo publish --manifest-path api/rs/build/Cargo.toml
cargo publish --manifest-path internal/backends/qt/Cargo.toml