gimp/app/base
Sven Neumann aaa16d3b87 Speed up our display rendering code paths by keeping data with
2007-12-13  Sven Neumann  <sven@gimp.org>

	Speed up our display rendering code paths by keeping data with
	pre-multiplied alpha where possible. The projection tile-manager
	at 100 % zoom is not affected. So we can still always get the
	non-pre-multiplied pixel data.

	* app/core/gimpprojection.[ch]: removed
	gimp_projection_get_opacity(), the projection is always opaque.

	* app/base/tile-pyramid.[ch]: use pre-multiplied alpha for the
	upper levels of the pyramid. This speeds up validation of the
	upper levels significantly.

	* app/base/temp-buf.[ch]: added temp_buf_demultiply().

	* app/core/gimpimage-preview.c: demultiply the preview temp-buf
	obtained from the projection's tile tyramid.

	* app/display/gimpdisplayshell-draw.c
	* app/display/gimpdisplayshell-render.c: added code to deal with
	pre-multiplied data. In fact all data returned by
	render_image_tile_fault() is now pre-multiplied so that
	render_image_rgb_a() and render_image_gray_a() don't need to use
	the large lookup tables from gimprender.[ch] any longer.

svn path=/trunk/; revision=24352
2007-12-13 17:27:07 +00:00
..
Makefile.am app/base/base-utils.c New files, with just one function so far, 2007-11-01 14:29:48 +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 app/base/base-types.h app/base/tile-manager.[ch] removed accessors for 2007-06-21 14:36:58 +00:00
base-utils.c an ugly but working variant for no varargs macros 2007-12-09 14:19:02 +00:00
base-utils.h changed to get_physical_memory_size() and added an implementation for 2007-11-17 13:13:11 +00:00
base.c call tile_cache_exit() before tile_swap_exit(). tile_cache_exit() may use 2007-06-13 13:36:00 +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 use the offsets module TILE_WIDTH and TILE_HEIGHT instead of doing the 2007-09-12 18:29:11 +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 app/core/Makefile.am app/core/core-types.h app/core/gimpcurve-save.[ch] 2007-11-02 12:18:50 +00:00
curves.h app/core/Makefile.am app/core/core-types.h app/core/gimpcurve-save.[ch] 2007-11-02 12:18:50 +00:00
gimphistogram.c weight pixels by their alpha value (bug #477689). 2007-09-19 17:21:41 +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 make sure we don't get stuck in a loop if all pixels are transparent (bug 2007-11-16 13:47:28 +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.msc updated and removed -GD to let msvc9 complain less 2007-12-09 14:11:09 +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 when resizing, don't advance the "data" pointer of regions of contiguous 2007-10-23 14:15:27 +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 Speed up our display rendering code paths by keeping data with 2007-12-13 17:27:07 +00:00
temp-buf.h Speed up our display rendering code paths by keeping data with 2007-12-13 17:27:07 +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 app/base/Makefile.am app/base/tile.[ch] moved tile row hints code to its 2007-10-09 16:14:10 +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 code cleanup. 2007-12-13 09:57:28 +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-preview.c app/paint-funcs/Makefile.am 2007-08-08 08:35:45 +00:00
tile-manager-preview.h added tile_manager_get_sub_preview(). 2007-07-17 20:33:10 +00:00
tile-manager-private.h app/base/base-types.h app/base/tile-manager.[ch] removed accessors for 2007-06-21 14:36:58 +00:00
tile-manager.c if no tiles have been allocated, there's no need to invalidate any. Should 2007-11-30 12:19:21 +00:00
tile-manager.h app/base/base-types.h app/base/tile-manager.[ch] removed accessors for 2007-06-21 14:36:58 +00:00
tile-private.h app/base/tile-private.h Move the LARGE_SEEK and LARGE_TRUNCATE macros from 2007-12-12 08:57:14 +00:00
tile-pyramid.c Speed up our display rendering code paths by keeping data with 2007-12-13 17:27:07 +00:00
tile-pyramid.h Speed up our display rendering code paths by keeping data with 2007-12-13 17:27:07 +00:00
tile-rowhints.c app/base/Makefile.am app/base/tile.[ch] moved tile row hints code to its 2007-10-09 16:14:10 +00:00
tile-rowhints.h app/base/Makefile.am app/base/tile.[ch] moved tile row hints code to its 2007-10-09 16:14:10 +00:00
tile-swap.c app/base/tile-private.h Move the LARGE_SEEK and LARGE_TRUNCATE macros from 2007-12-12 08:57:14 +00:00
tile-swap.h allocate structs using GSlice. 2007-05-22 21:32:09 +00:00
tile.c app/base/Makefile.am app/base/tile.[ch] moved tile row hints code to its 2007-10-09 16:14:10 +00:00
tile.h formatting 2007-10-09 17:20:53 +00:00