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/