Hi Doru, First, I understand the effort you all made to make this big piece of work. I have however some questions that probably you can help with:
1) I understand Sparta is a library completely independent from Athens. But I also understand that they follow the same reasoning and general design (a general API to deal with 2D vectorial graphics with pluggable backends). - What are the differences between sparta and athens then? This is really unclear to me. Are there differences in the API? in the internal backend requirements? - In case there are many differences, What are the reasons that made you implement a complete new library and not just extend the existing one (Athens)? - or even, just make a moz2d backend for athens? 2) About moz2d. I understand how the build process you use works. But it looks a bit fragile. You mention engaging the mozilla people. I think this is really important, - either they could propose an alternative solution to what you're doing - or, if you contribute back your patches to mozilla (which I think you should), this will make your process depend less on custom-made patches - besides, creating a link between the two communities is probably worth it: people in mozilla may consider how their changes impact their users. Guille On Wed, Jan 25, 2017 at 12:41 PM, Tudor Girba <tu...@tudorgirba.com> wrote: > 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." > > > > > >