Here's another idea that I use in my program giv. Whenever I am painting an object on screen, I am painting the same object in an off-screen image with the same drawing commands but with "color" that is a combination of R,G,B that encode the index of the object. The important catch is that you have to turn off anti-aliasing for this to work. During motion events I then extract the corresponding pixel from the off-screen image, decode the R,G, and B to get the index of the object, which points to a vector of properties that I show.
Regards, Dov 2009/2/7 Fabio Mariotti <[email protected]> > Ok I have 2 partial answers to myself: > > > I need to draw triangles (and circles) on the screen (any drawable) >> and have active events on each object I draw: namely mouse_over, click.. >> etc.. >> [they can overlap] >> >> Is there any alternative to gnome-canvas? >> In particular gnome-canvas was working nicely up to 20000 objects >> but a bit heavy with 40000. (I would guess that an equivalent >> canvas solution will suffer the same problem..) >> >> Is there a simple way to "recode" a simple z-buffer using existing tools? >> With simple I mean that I do not have to recalculate exposed pixels. >> > > 1) There is no simple coding or otherwise I would be doing a canvas! > > 2) for my little application I have a possible solution: > I set up a z-buffer as simple integers vector. I store 2 doubles > at least for each figure so an integer shouldn't harm the memory. > Due to the type of application, on an click at x,y, I can guess > a limited number of triangles which might be present in the area. > I can redraw the area in the style of a canvas and propagate > the event. Grab it. destroy the canvas-like object. and redraw > in normal style. > I am not sure if I can actually do it... more over I'll still need > the canvas part. > The advantage is that (of course I do not have to code again > the pixel stuff) I can change shape of my > objects at will (ok twice) and moreover I can simply use the event > stuff which exists already. > The overload on the users side shouldn't e that big They will stare > at the screen anyway.. ;). > On which widget can I draw a canvas at arbitrary coordinates? > I'll find it out ;) > [ > I got the idea from an old post... > http://mail.gnome.org/archives/gtk-list/2006-September/msg00275.html > Where I discussed the problem in different terms. > I didn't actually try it. The first reason was that on win machines it > would > have made no difference. > ] > > A note: would it be a possibility to have a gdk widget named shape(for > example) > which simply draw itself and gets events? > It is just the same problem of shaped windows and the like. > > sorry again for the long post.. > Faio > > > _______________________________________________ > gtk-list mailing list > [email protected] > http://mail.gnome.org/mailman/listinfo/gtk-list > >
_______________________________________________ gtk-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtk-list
