• Alexander Larsson's avatar
    Add GtkPixelCache · 30dc399b
    Alexander Larsson authored
    GtkPixelCache is a helper utility that lets you implement
    faster scrolling of a viewport of a canvas by using an
    offscreen pixmap cache.
    
    You call _gtk_pixel_cache_draw with a callback function that
    does the drawing, and additionally you specify the size and the
    position of the viewport in the widget, and the position and size
    of the canvas wrt the viewport. The callback will be called to
    draw on an offscreen surface, and the surface will be drawn
    on the window. The next time you do the same, any already drawn
    pieces of the surface are re-used from the offscreen and need
    not be rendered again.
    
    If things inside the canvas change you need to call
    _gtk_pixel_cache_invalidate to tell the cache about this.
    
    Some other details:
    
    * The offscreen surface is generally a bit larger than
      the viewport, so scrolling a small amount can often
      be done without redrawing children.
    * If the canvas is not larger than the viewport no
      offscreen surface is used.
    
    GtkPixelCache: Make sure we always copy using SOURCE
    
    We were using OVER for the first copy (from source to group surface.
    
    GtkPixelCache: Fix x/y typos
    
    GtkPixelCache: Allow NULL for invalidate region
    
    gtkpixelcache: Use CONTENT_COLOR for solid bg windows
    30dc399b
Name
Last commit
Last update
build Loading commit data...
demos Loading commit data...
docs Loading commit data...
examples Loading commit data...
gdk Loading commit data...
gtk Loading commit data...
libgail-util Loading commit data...
m4 Loading commit data...
m4macros Loading commit data...
modules Loading commit data...
perf Loading commit data...
po Loading commit data...
po-properties Loading commit data...
tests Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
ChangeLog.gtk-async-file-chooser Loading commit data...
ChangeLog.gtk-printing Loading commit data...
ChangeLog.pre-1-0 Loading commit data...
ChangeLog.pre-1-2 Loading commit data...
ChangeLog.pre-2-0 Loading commit data...
ChangeLog.pre-2-10 Loading commit data...
ChangeLog.pre-2-12 Loading commit data...
ChangeLog.pre-2-14 Loading commit data...
ChangeLog.pre-2-16 Loading commit data...
ChangeLog.pre-2-2 Loading commit data...
ChangeLog.pre-2-4 Loading commit data...
ChangeLog.pre-2-6 Loading commit data...
ChangeLog.pre-2-8 Loading commit data...
HACKING Loading commit data...
INSTALL.in Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
Makefile.decl Loading commit data...
NEWS Loading commit data...
NEWS.pre-1-0 Loading commit data...
README.commits Loading commit data...
README.in Loading commit data...
README.win32 Loading commit data...
acinclude.m4 Loading commit data...
autogen.sh Loading commit data...
config.h.win32.in Loading commit data...
configure.ac Loading commit data...
gail-3.0.pc.in Loading commit data...
gdk-3.0.pc.in Loading commit data...
git.mk Loading commit data...
gtk+-3.0.pc.in Loading commit data...
gtk+-unix-print-3.0.pc.in Loading commit data...
gtk+.doap Loading commit data...
gtk+.spec.in Loading commit data...
gtk-engine-check-abi.sh Loading commit data...
gtk-zip.sh.in Loading commit data...
makecopyright Loading commit data...
makefile.msc Loading commit data...
sanitize-la.sh Loading commit data...
sanity_check Loading commit data...