-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hackathon: Browser integration of Fontations Rust font stack #46
Comments
CC @foolip |
CC @delan |
A Fontations (Skrifa) backend for WebRender (specifically There is one significant difference between Swash and Skrifa which is that Swash includes a vector rasterizer (based on Zeno) whereas Skrifa does Scaling/Hinting but leaves the rasterizeration to the caller. So a Skrifa backend for WebRender would need to combine Skrifa with a general purpose vector renderer such as Skia or Tiny-Skia. I think Firefox already bundles Skia? So Skia might make sense there. Servo doesn't so something "smaller and lighter" like Tiny-Skia would probably make sense. Tiny-Skia supports most of the necessary graphics operations, but is missing support for "sweep gradients" (aka conic gradients) which are needed for COLRv1 (porting those from Skia would potentially be fun smallish project in and of itself) |
@nicoburns I am not super familiar with the web render capabilities: Does webrender itself contain a bezier curve rasterizer? Is it capable of rendering most of SVG on its own? If it can render curves, could webrender itself be used to render glyphs from paths? Skrifa does provide glyph contours in OutlineGlyph::draw which could then be connected. |
@drott My understanding is that WebRender does not do vector rendering at all. I believe Firefox uses Moz2D for this. Servo only really supports vector rendering for Canvas2D for which is currently uses raqote (but raqote is both slow and unmaintained, so it is not seen as long term solution and I suspect it would be better to bring in something else rather than use raqote). |
Facilitator(s)
@drott
Summary
In Chrome we've started to ship the new open-source Rust font stack based on Fontations and Skia. I volunteer to host a hackathon to experiment with integration of Fontations into Servo and Firefox and consult with build system integration, foreign-function-interface design and API questions on Fontations.
Potential initial milestones:
@mrobinson and @jfkthame have expressed interest from the Servo and Mozilla side respectively.
Type
Onsite
Other comments
I suggest for the length of this breakout session to be a longer session and for it to extend over the time of the event - availability of the participants permitting.
The text was updated successfully, but these errors were encountered: