suitable toolbox for drawing toons on a screen.
- From: Amy C <mathematical coffee gmail com>
- To: gnome-shell-list gnome org
- Subject: suitable toolbox for drawing toons on a screen.
- Date: Fri, 11 May 2012 13:00:09 +1000
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
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?
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
] [Thread Prev