suitable toolbox for drawing toons on a screen.



Hi all,

As something fun I'd like to try writing a gnome shell extension that
draws things on the user's screen. Entirely useless, but I think it'll
be fun to write (OK OK, the vague idea I have is to port xpenguins to
gjs :P).

I've done a bit of X11 programming before as in a previous life I
spent quite a while in the XPenguins source tweaking it to my
preference, but now that it comes to GJS I'm not sure what tools are
available/which to use.

Features I'd like:
1) draw animated toons (by displaying a particular snippet of a
pixmap) : Gtk? Gdk?
2) window features - calculate where windows are to build up regions
toons are/aren't allowed to walk on (XRegions, XRectangles) : mutter?
clutter?
3) draw onto either a particular window that I choose, or the 'root' window.

Does anyone have a feel for what toolkit(s) are suitable for this? I
guess it would be ideal to use the one toolkit for most things, to
avoid having to translate (e.g.) a Meta.Rectangle to some sort of Gdk
region all the time.

I have no idea what toolkit to use for 1), but I have the vague
feeling it's G[dt]k.
As for window features, I know I can get window rectangles via
Meta.Rectangle and union them together to build up regions.

However, does one draw *directly* onto the target window (this is what
Xlib XPenguins does), or does one create a transparent, clickthrough
window over the top of the target window and draw onto that? Or one
small window per toon??

Or can everything be done with Clutter (I must confess I know very
little about Clutter)? Do I make a "stage" and each "actor" is a toon,
and use a ClutterTexture (ClutterImage? ClutterCanvas?) for displaying
the toon's picture, updating it every frame?

I apologise for the somewhat confused nature of this email, but I feel
like there's so many ways to skin this cat, and I just want to pick
the "right" one from the get go rather than doing lots of switching
and changing after starting with a toolkit that turned out to be
inappropriate.

cheers!


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]