gimp/app/base
Martin Nordholts 7917611e53 Implemented an image pyramid for the GimpProjection. An image pyramid
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.


svn path=/trunk/; revision=22727
2007-06-06 13:45:44 +00:00
..
base-enums.c forgot to commit the latest version of this file (only a typo fix). 2006-10-23 12:09:22 +00:00
base-enums.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
base-types.h removed unused typedef. 2007-05-29 09:57:40 +00:00
base.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
base.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
boundary.c app/actions/data-commands.c app/base/boundary.c app/base/gimphistogram.c 2007-05-22 10:43:48 +00:00
boundary.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
color-balance.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
color-balance.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
colorize.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
colorize.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
cpercep.c app/*.[ch] converted tabs to spaces. 2006-04-12 12:49:29 +00:00
cpercep.h app/*.[ch] converted tabs to spaces. 2006-04-12 12:49:29 +00:00
curves.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
curves.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
gimphistogram.c app/actions/data-commands.c app/base/boundary.c app/base/gimphistogram.c 2007-05-22 10:43:48 +00:00
gimphistogram.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
gimplut.c app/actions/data-commands.c app/base/boundary.c app/base/gimphistogram.c 2007-05-22 10:43:48 +00:00
gimplut.h app/base/gimplut.[ch] app/tools/gimpcurvestool.c reverted the changes done 2007-05-05 14:29:37 +00:00
hue-saturation.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
hue-saturation.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
levels.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
levels.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
lut-funcs.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
lut-funcs.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
Makefile.am app/base/Makefile.am removed these files. 2007-04-01 13:38:22 +00:00
makefile.msc updated 2005-09-25 19:30:55 +00:00
pixel-processor.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
pixel-processor.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
pixel-region.c app/base/tile-manager.[ch] removed unused code. 2007-05-22 18:29:33 +00:00
pixel-region.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
pixel-surround.c app/base/tile-manager.[ch] removed unused code. 2007-05-22 18:29:33 +00:00
pixel-surround.h do less tile lock and release operations by reusing the last locked tile 2007-02-23 16:19:42 +00:00
siox.c cleaning up after my last commit... 2007-05-22 21:40:24 +00:00
siox.h let the caller specify a region of interest. Call the progress function 2006-03-22 13:18:22 +00:00
temp-buf.c app/actions/data-commands.c app/base/boundary.c app/base/gimphistogram.c 2007-05-22 10:43:48 +00:00
temp-buf.h app/base/base-types.h remove redundant and inconsistently used MaskBuf 2007-04-13 14:04:37 +00:00
threshold.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
threshold.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
tile-cache.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
tile-cache.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
tile-manager-crop.c In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
tile-manager-crop.h In all files, changed the standard copyright notice to say "GIMP - The GNU 2006-12-09 21:33:38 +00:00
tile-manager-private.h Implemented an image pyramid for the GimpProjection. An image pyramid 2007-06-06 13:45:44 +00:00
tile-manager.c Implemented an image pyramid for the GimpProjection. An image pyramid 2007-06-06 13:45:44 +00:00
tile-manager.h Implemented an image pyramid for the GimpProjection. An image pyramid 2007-06-06 13:45:44 +00:00
tile-private.h Fix #398311 in GIMP until corresponding abstraction has been added to 2007-01-27 01:49:01 +00:00
tile-swap.c cleaning up after my last commit... 2007-05-22 21:40:24 +00:00
tile-swap.h allocate structs using GSlice. 2007-05-22 21:32:09 +00:00
tile.c renamed tile_sanitize_rowhints() to tile_allocate_rowhints(). 2007-05-29 09:06:15 +00:00
tile.h renamed tile_sanitize_rowhints() to tile_allocate_rowhints(). 2007-05-29 09:06:15 +00:00