I think that instead of investigating gtk (yet another library to bind and carry around), it would be smarter to have Sparta back-end using an accelerated Cairo + pango.
Why? Because
- For example Cairo will not disappear in the future (here you will tell me that it does not have all the full features.... I think that Bloc should deliver Brick first and focus on this because else it will stay a nice
        experiment.)
- We do not have bench with an accelerated compiled version so no idea if this is good enough.
        - Cairo is about 1.5 mb vs 20Mb and it is packaged.

I share the concerns of Esteban about the maintenance of such Mozz2d bundling and he was pretty clear with me, he will not maintain it nor take any responsibility about pharo using it.

        So having a Cairo Sparta back-end would be a smart move.
Stef





Hi,

Thank you for the intensive set of issues you raised during the Bloc presentation. I think it is worthwhile addressing them more thoroughly, so let me start with the issue that seemed to have caused the most worries: Sparta & Moz2D.

Please keep in mind that while I am involved to some extent in Bloc, the real credits for the current state go to Glenn and Alex.

Moz2D (https://github.com/mozilla/moz2d, https://wiki.mozilla.org/Platform/GFX/Moz2D) offers an advanced backend and using it puts us on par with the rendering speed of a web browser, which is a significant added value over what we have now.

However, as it was noted, it does come with a cost due to the fact that it is not available as standalone with only the features we are interested in. The vector graphics part is actually buildable out of the box. However, the text support needs to be extracted out of Moz2D, and this is where the patching scripts are used. The patches are there only for compilation purposes and not for features and they are applied automatically. You can see it here:
https://github.com/syrel/Moz2D

Alex updated recently the Moz2D version and it worked without problems. Of course, future changes in Moz2D might imply changes in this script as well, and this implies that we will need to maintain that script. And we could imagine applying these patches on the trunk of Moz2D to see if they work, and we can also imagine engaging with the Moz2D owners to see if we can find a middle ground.

Now, let’s put this into perspective. We are currently using Athens and the Cairo backend. While Cairo is provided as a standalone library it has not seen significant advances since Mozzila shifted its focus towards Moz2D. So, sticking with it might not be an ideal strategy either.

Furthermore, just like Athens, Sparta is an abstraction that allows us to switch the underlying backend should we need to. Until now we did not find a cross-platform backend that is as advanced and complete as Moz2D, but there is no reason to think that none other will appear in the future. Skia is an alternative but it is only a vector graphic engine without text support, so using it would imply to have another library for the text support.

Sparta also comes with a reasonable set of tests that is aimed at testing the basic Moz2D functionality to make sure that the assumptions on top of which Sparta is built are correct.

All in all, I think that the current situation is not ideal, but there is already enough engineering in place to actually make it work. And I definitely think that the potential it opens is rather significant.

And, if more people look at the scripts, we might find even better and cheaper ways to express it.

Cheers,
Doru


--
www.tudorgirba.com
www.feenk.com

"We cannot reach the flow of things unless we let go."







--
Using Opera's mail client: http://www.opera.com/mail/

Reply via email to