canvas: Remove as much usage of font-kit as possible (#32758)

Do font selection using Servo's font backend, which is shared with the
rest of layout. In addition, delay the creation of the `font-kit` font
until just before rendering with `raqote`. The idea is that when
`raqote` is no longer used, we can drop the `font-kit` dependency.

This change has the side-effect of fixing text rendering in canvas,
adding support for font fallback in canvas, and also correcting a bug in
font selection with size overrides.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
This commit is contained in:
Martin Robinson 2024-07-11 06:25:38 +02:00 committed by GitHub
parent c6cb7ee981
commit 4907e89656
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 261 additions and 209 deletions

4
Cargo.lock generated
View file

@ -626,6 +626,7 @@ dependencies = [
name = "canvas"
version = "0.0.1"
dependencies = [
"app_units",
"bitflags 2.6.0",
"byteorder",
"canvas_traits",
@ -641,8 +642,10 @@ dependencies = [
"lyon_geom",
"net_traits",
"num-traits",
"parking_lot",
"pathfinder_geometry",
"pixels",
"range",
"raqote",
"servo_arc",
"sparkle",
@ -650,6 +653,7 @@ dependencies = [
"style_traits",
"surfman",
"time 0.1.45",
"unicode-script",
"webrender",
"webrender_api",
"webrender_traits",