[Pharo-dev] Moz2d Vs. Skia

Tudor Girba tudor at tudorgirba.com
Fri Nov 8 05:41:42 EST 2019


Thanks for following the development of Bloc :).

We invest in multiple backends because of several reasons. For example, for window hosting we have SDL2 (which relies on polling) and Glutin (which relies on a push model), but we also have Morphic. And now, when it comes to rendering we have both Moz2D and Skia. These have different properties.

When we started to work with Moz2D, it was the only cross-platform vector graphical framework with rich support of text rendering. We knew that we eventually need to move away from it, but it allowed us to bootstrap nicely. At that time Skia was actually one of the backends of Moz2D. In the meantime, Skia evolved significantly. It hasn’t quite reach the level of Moz2D when it comes to text yet, but for our typical use cases, it is already good enough.

While Moz2D works fine today, we now want to move to Skia because of maintenance and support for newer technologies. For example, both Moz2D and Skia are written in C++ which mean we can not directly use both of them via FFI and have to implement C ABI bindings anyway. However, for Skia, there exists a project (https://github.com/rust-skia/rust-skia) that provides an up-to-date Skia bindings in Rust. This provides a quick way to build and to integrate into CI, and it also looks memory safe. Skia also has support for Vulkan.

Now, while we target Skia in the short term, we also consider and play with other combinations. In particular, WebRenderer looks interesting. For text, we could use Skia, or we could also consider using something like font-kit.

I wanted to detail a bit how we work to show how we exercise the underlying architecture continuously. A similar story happens on the host side. We think it is critical to have as much flexibility as possible at that level, while also exposing all underlying abilities in the image. For example, an important piece when dealing with text is to have access to accurate measurements. So, those are available through Sparta.


> On Nov 7, 2019, at 6:52 AM, ducasse <stepharo at netcourrier.com> wrote:
> Hi doru and alex
> Can you tell me why you drop Moz2D and switch to Skia (which to us looks a much safer path starting from the packaging :)?
> S


"Quality cannot be an afterthought."

More information about the Pharo-dev mailing list