Actually, the code is currently using agg to do the rendering, but the code to use cairo is there as well. It's just ifdef'd out, waiting for cairo to win a shoot-out against agg. :-)
Regards, Dov 2009/2/8 Behdad Esfahbod <[email protected]> > Dov Grobgeld wrote: > > 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. > > I always had this idea of using cairo for hit detection in this way. > Didn't > know you have already implemented it Dov. Great! > > Cheers, > behdad > > > > Regards, > > Dov > > > > 2009/2/7 Fabio Mariotti <[email protected] > > <mailto:[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] <mailto:[email protected]> > > http://mail.gnome.org/mailman/listinfo/gtk-list > > > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > 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
