Commit Graph

17 Commits

Author SHA1 Message Date
Michael Natterer 6f300a579c changed "type" parameter into "bytes" because tile managers don't care
2008-11-04  Michael Natterer  <mitch@gimp.org>

	* app/base/tile-pyramid.[ch] (tile_pyramid_new): changed "type"
	parameter into "bytes" because tile managers don't care about
	the pixel format of their tiles. Reordered parameters to match
	tile_manager_new().

	* app/core/gimpprojection.c (gimp_projection_get_tiles_at_level):
	pass the bytes instead of the image type.


svn path=/trunk/; revision=27544
2008-11-04 08:50:04 +00:00
Sven Neumann 576ea3cda1 whitespace fix
svn path=/trunk/; revision=26438
2008-08-08 10:57:38 +00:00
Sven Neumann 0d4b6aa33e improved a comment.
2008-08-08  Sven Neumann  <sven@gimp.org>

	* app/base/tile-pyramid.c: improved a comment.


svn path=/trunk/; revision=26436
2008-08-08 10:06:09 +00:00
Sven Neumann 055086aef2 use the coordinate parameters in tile_data_pointer() instead of adjusting
2007-12-18  Sven Neumann  <sven@gimp.org>

	* app/base/tile-pyramid.c: use the coordinate parameters in
	tile_data_pointer() instead of adjusting the pointer manually.

svn path=/trunk/; revision=24392
2007-12-18 15:40:01 +00:00
Sven Neumann f63b11c3aa sprinkled with const qualifiers.
2007-12-18  Sven Neumann  <sven@gimp.org>

	* app/base/tile-pyramid.c: sprinkled with const qualifiers.

svn path=/trunk/; revision=24391
2007-12-18 15:24:52 +00:00
Sven Neumann 146067d737 reduced rounding errors.
2007-12-14  Sven Neumann  <sven@gimp.org>

	* app/base/tile-pyramid.c: reduced rounding errors.

svn path=/trunk/; revision=24361
2007-12-14 08:58:36 +00:00
Sven Neumann 1b4f87189d app/base/tile-pyramid.c (tile_pyramid_write_quarter) corrected formula
2007-12-13  Sven Neumann  <sven@gimp.org>

	* app/base/tile-pyramid.c (tile_pyramid_write_quarter)
	* app/display/gimpdisplayshell-render.c
	(render_image_tile_fault_nearest): corrected formula used for
	pre-multiplying the alpha value.


svn path=/trunk/; revision=24353
2007-12-13 19:00:00 +00:00
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
Sven Neumann c6e030dca2 reduce rounding errors. Fixed bug #491503.
2007-10-30  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplayshell-render.c (box_filter): reduce
	rounding errors. Fixed bug #491503.

	* app/base/tile-pyramid.c (tile_pyramid_write_quarter): reduce
	rounding errors.


svn path=/trunk/; revision=23986
2007-10-30 08:39:51 +00:00
Sven Neumann 161ed9623f optimized the rendering of fully opaque regions.
2007-10-09  Sven Neumann  <sven@gimp.org>

	* app/base/tile-pyramid.c (tile_pyramid_write_quarter): optimized
	the rendering of fully opaque regions.

svn path=/trunk/; revision=23778
2007-10-09 15:46:44 +00:00
Sven Neumann ff80ac1701 formatting.
2007-09-14  Sven Neumann  <sven@gimp.org>

	* app/base/tile-pyramid.c: formatting.

	* app/display/gimpdisplayshell-render.c: removed unused include.

svn path=/trunk/; revision=23545
2007-09-14 13:44:32 +00:00
Sven Neumann 610feafb3e app/base/base-types.h app/base/tile-manager.[ch] removed accessors for
2007-06-21  Sven Neumann  <sven@gimp.org>

	* app/base/base-types.h
	* app/base/tile-manager.[ch]
	* app/base/tile-manager-private.h: removed accessors for user_data.
	Instead pass the user_data when setting the validation proc.

	* app/base/tile-pyramid.c
	* app/core/gimpchannel.c
	* app/core/gimpprojection.c
	* app/core/gimpselection.c
	* app/tools/gimpiscissorstool.c: changed accordingly.

svn path=/trunk/; revision=22820
2007-06-21 14:36:58 +00:00
Sven Neumann f2e9d552b2 app/base/tile-manager.[ch] removed "level_below" from the TileManager
2007-06-21  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.[ch]
	* app/base/tile-manager-private.h: removed "level_below" from the
	TileManager struct.
	
	* app/base/tile-pyramid.c: use the TileManager's user_data to
	store a pointer to the lower level.

svn path=/trunk/; revision=22819
2007-06-21 14:13:01 +00:00
Sven Neumann 173c9d40aa use gboolean for boolean parameters.
2007-06-21  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.[ch]: use gboolean for boolean parameters.

	* app/base/tile-pyramid.c (tile_pyramid_get_memsize): pass TRUE
	for sparse to tile_manager_get_memsize().

	* app/base/tile.c
	* app/base/tile-swap.c: minor cleanups.

	* app/core/gimpprojection.c (gimp_projection_get_tiles_at_level):
	inline the creation of the TilePyramid.

svn path=/trunk/; revision=22818
2007-06-21 14:02:14 +00:00
Sven Neumann 4738f65724 documentation.
2007-06-20  Sven Neumann  <sven@gimp.org>

	* app/base/tile-pyramid.[ch]: documentation.


svn path=/trunk/; revision=22812
2007-06-21 07:03:23 +00:00
Sven Neumann 3f747cf0e3 added missing implementations for 1 and 3 bytes per pixel.
2007-06-20  Sven Neumann  <sven@gimp.org>

	* app/base/tile-pyramid.c (tile_pyramid_write_quarter): added missing
	implementations for 1 and 3 bytes per pixel.

svn path=/trunk/; revision=22808
2007-06-20 16:25:53 +00:00
Sven Neumann 3038dc0e80 app/base/Makefile.am app/base/base-types.h image pyramid code split out of
2007-06-20  Sven Neumann  <sven@gimp.org>

	* app/base/Makefile.am
	* app/base/base-types.h
	* app/base/tile-pyramid.[ch]: image pyramid code split out of
	GimpProjection.

	* app/core/gimpprojection.[ch]: use the new TilePyramid.

svn path=/trunk/; revision=22807
2007-06-20 16:15:16 +00:00