On fre, 2013-05-03 at 00:03 +0200, Søren Sandmann wrote: > Alexander Larsson <al...@redhat.com> writes: > > > * Try a tile-based approach for GtkPixelCache to avoid having > > to do a same-surface copy (usign an intermediate surface) when > > scrolling the cache. > > An alternative to tiles is to keep track of an origin within the > surface: > > +--------+--------------------------+ > | Bot R | Bottom left | > | | | > +--------O--------------------------+ > | Top R | Top left | > | | | > | | | > | | | > | | | > | | | > | | | > | | | > +--------+--------------------------+ > > with the contents of the surface addressed modulo width and > height. Scrolling is then just a matter of moving that origin, but > copying from the surface may require four separate blits. Similarly, > rendering to some rectangle may have to be split into four separate > operations.
Yeah, a 2d circular buffer. I've thought about this and its clearly doable, although somewhat of a nightmare to handle all the cases. t still has some overhead that it shares with the tiled version though, we need to traverse the scenegraph multiple times, which isn't super cheap currently. It would be nice it cairo could let us stitch together a surface made out of multiple subsurfaces, then we could avoid such overhead. _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-devel-list