Canvas considerations for Sugar/OLPC

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Canvas considerations for Sugar/OLPC

Dan Williams-4
So we're back to canvas land for OLPC.  The visual mock-ups which
Pentagram, Red Hat, and OLPC folks have been blitzerating (iterating
with lightening-like speed) over for the past two or three weeks aren't
going to be able to be stuffed into a GTK layout/box model.  So Marco
and I would like to kick off a discussion about canvas libraries and
OLPC/Sugar requirements (as we see them).

We have a few hard requirements:

(a) Must use Cairo for drawing and rendering, no 3D or OGL
(b) Must have python bindings
(c) Must be usable within GTK-based applications

There are two canvas libraries that look like promising candidates:

GooCanvas
libccc

Both seem to be fairly actively developed, have a steady stream of
recent commits, and provide a -> c from above.  They both appear to
support about the same feature set and provide similar API, using
variants of MVC which we may well find useful in the Sugar UI.

We're going to be making heavy use of animation, if possible, so having
convenience functions to support that, or even higher level support
would be useful.  We will likely have to extend this ourselves anyway,
since neither option seems to provide a lot of animation support.

We need to make sure that the option we finally choose is maintained
over the long term, preferably by people in addition to us.  Perhaps one
of these options will eventually replace GnomeCanvas upstream.  If it's
the one we chose, great, if not, well then we suck it up.

What ever happened to Alex's infamous GTK offscreen patch?  We're still
stuck in the same world where a canvas is a one-way viewport that has to
do it's own event handling.  We won't be able to use GTK widgets in any
of the Home UI we're looking to build, simply because it would make use
of the canvas and we can't embed GTK widgets in a canvas AFAIK.

- Who knows the maintainers of either of these two options?  Are they
both sharp people?

- Has anyone looked at the code of these two options besides us?  What
are your thoughts and concerns?

- What other options are there that fit the bill?  Looked at libpapyrus
on mclasen's suggestion, and it looks OK but is (a) C++ and (b) no
python bindings

- What feature/performance/API gaps do either of these implementations
have?

- What's the state of canvas discussion WRT Gnome and GTK?  Where is it
expected to go in the next 6 months?

We don't want to spend a ton of time debating canvas stuff, since we've
got a really, really tight schedule and we want to start cranking on the
higher level UI code rather than getting back into a canvas debate (for
the second time).  Hopefully we can pick a path to follow by tomorrow
and hit the road.

Dan


Reply | Threaded
Open this post in threaded view
|

Re: Canvas considerations for Sugar/OLPC

Alexander Larsson
On Mon, 2006-08-14 at 23:07 -0400, Dan Williams wrote:
> What ever happened to Alex's infamous GTK offscreen patch?  We're still
> stuck in the same world where a canvas is a one-way viewport that has to
> do it's own event handling.  We won't be able to use GTK widgets in any
> of the Home UI we're looking to build, simply because it would make use
> of the canvas and we can't embed GTK widgets in a canvas AFAIK.

Its currently a patch here:
http://bugzilla.gnome.org/show_bug.cgi?id=318807

The code sort of works, but its not really in a generally usable state.
It requires lots of testing and fixing. Also, the approach has
limitations, as several things require a real xwindow id: opengl,
Xvideo, Xinput extension, etc.

Of course, if you don't need correct stacking and translation/rotation
of subwindows you could just put an X window over the canvas.

> - Who knows the maintainers of either of these two options?  Are they
> both sharp people?

GooCanvas is written by Damon Chaplin. He's a sharp guy, and a longtime
gnome developer (he wrote glade i think).
Herzi, the libccc developer has been around the community a while, but I
don't really know anything about him.

> - Has anyone looked at the code of these two options besides us?  What
> are your thoughts and concerns?

I've looked at GooCanvas a bit. The API and code looks pretty good for
what it is. Its pretty similar in API to the traditional GnomeCanvas
API, which is nice if you know that I guess, but it might be possible to
create a better API if you spend some time on it.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander Larsson                                            Red Hat, Inc
                   [hidden email]    [hidden email]
He's an underprivileged devious cat burglar gone bad. She's a man-hating gypsy
doctor who believes she is the reincarnation of an ancient Egyptian queen.
They fight crime!