canvas: Remove the raqote backend (#38962)

In general, `raqote` is essentially umaintained and has issues with
quality (for instance text rendering has lots of issues) and removing it
finally lets us remove our dependency on `font-kit`. Although,
`vello_cpu` performance is not yet equal to raqote, rendering quality is
a lot better. It's expected that `vello` and `vello_cpu` performance
will keep improving.

Testing: This is covered by existing WPT tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This commit is contained in:
Martin Robinson 2025-08-27 05:19:27 -07:00 committed by GitHub
parent 0089e652c5
commit de69040e47
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 5 additions and 982 deletions

View file

@ -169,7 +169,6 @@ impl<DrawTarget: GenericDrawTarget> CanvasData<DrawTarget> {
Size2D::new(dest_rect.size.width as f32, dest_rect.size.height as f32),
);
// TODO(pylbrecht) pass another closure for raqote
self.draw_with_shadow(
&rect,
shadow_options,
@ -411,8 +410,7 @@ impl<DrawTarget: GenericDrawTarget> CanvasData<DrawTarget> {
let mut current_text_run_start_index = 0;
for (index, character) in text.char_indices() {
// TODO: This should ultimately handle emoji variation selectors, but raqote does not yet
// have support for color glyphs.
// TODO: This should ultimately handle emoji variation selectors.
let script = Script::from(character);
let font = font_group.find_by_codepoint(&self.font_context, character, None, None);