On tor, 2013-05-02 at 18:20 -0400, Paul Davis wrote:
> 
> 
> 
> 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 ...

This is not really a problem the pixel cache knows the size of the
"canvas" and the "viewport" so it will automatically not pick an
unnecessarily wide/tall offscreen surface.




_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to