On Thu, May 2, 2013 at 6:03 PM, Søren Sandmann <sandm...@cs.au.dk> 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.
>

this is where trying to be too generic hurts.

a given widget knows its aspect ratio. for things that are short and wide,
their "pixel cache" will consist of a set of full-height, partial-width
surfaces.
for things that are tall and narrow, their "pixel cache" will consist of a
set of full-width, partial-height caches. for things that are short and
narrow, their cache will consist of a single surface. for things that are
wide and tall ... well, they're on their own ...
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to