gimp r22727 - in trunk: . app/base app/core app/display
- From: martinn svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r22727 - in trunk: . app/base app/core app/display
- Date: Wed, 6 Jun 2007 14:45:45 +0100 (BST)
Author: martinn
Date: 2007-06-06 14:45:44 +0100 (Wed, 06 Jun 2007)
New Revision: 22727
ViewCVS link: http://svn.gnome.org/viewcvs/gimp?rev=22727&view=rev
Modified:
trunk/ChangeLog
trunk/app/base/tile-manager-private.h
trunk/app/base/tile-manager.c
trunk/app/base/tile-manager.h
trunk/app/core/gimpprojection.c
trunk/app/core/gimpprojection.h
trunk/app/display/gimpdisplayshell-draw.c
trunk/app/display/gimpdisplayshell-render.c
Log:
2007-06-06 Martin Nordholts <martinn svn gnome org>
Implemented an image pyramid for the GimpProjection. An image pyramid
caches a projection at several sizes, causing the rendering code not to
have to swap in all tiles of a (potentially) large image; it can use
small versions of the projection if the user is zoomed out.
The image pyramid also imroves visual quality, especially at zoom levels
where there is a pyramid level that matches perfectly (i.e. at e.g. 50%,
25%, and 12.5% zoom). A step on the right track for bug #76096.
* app/core/gimpprojection.[ch]: Adjusted to make use of an image
pyramid. GimpProjection now keeps an array of TileManager:s, one per
pyramid level. Renamed _alloc_tiles to _alloc_levels.
* app/display/gimpdisplayshell-draw.c: (gimp_display_shell_draw_area):
Use the right GimpProjection level when drawing
* app/display/gimpdisplayshell-render.c: (render_image_init_info_full):
Setup RenderInfo with level in mind
* app/base/tile-manager.[ch]: Extended API a bit, nothing complicated.
* app/base/tile-manager-private.h (struct _TileManager): Keep a pointer
to the level below for use in an image pyramid.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]