gimp r24352 - in trunk: . app/base app/core app/display



Author: neo
Date: 2007-12-13 17:27:07 +0000 (Thu, 13 Dec 2007)
New Revision: 24352
ViewCVS link: http://svn.gnome.org/viewcvs/gimp?rev=24352&view=rev

Modified:
   trunk/ChangeLog
   trunk/app/base/temp-buf.c
   trunk/app/base/temp-buf.h
   trunk/app/base/tile-pyramid.c
   trunk/app/base/tile-pyramid.h
   trunk/app/core/gimpimage-preview.c
   trunk/app/core/gimpprojection.c
   trunk/app/core/gimpprojection.h
   trunk/app/display/gimpdisplayshell-draw.c
   trunk/app/display/gimpdisplayshell-render.c
Log:
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.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]