Commit Graph

742 Commits

Author SHA1 Message Date
Sven Neumann e069a226d5 use a GMutex instead of a GStaticMutex as the latter needs API that causes
2008-10-08  Sven Neumann  <sven@gimp.org>

	* app/base/tile-cache.c: use a GMutex instead of a GStaticMutex
	as the latter needs API that causes compiler warnings about
	dereferencing of type-punned pointers.


svn path=/trunk/; revision=27170
2008-10-08 07:33:29 +00:00
Michael Natterer 62e7dcc640 reorder sections consistently. Remove redundant CFLAGS.
2008-10-07  Michael Natterer  <mitch@gimp.org>

	* app/*/Makefile.am: reorder sections consistently. Remove
	redundant CFLAGS.


svn path=/trunk/; revision=27163
2008-10-07 11:58:14 +00:00
Hans Breuer d94419a9fd updated include <string.h> for memcmp() include <string.h> for strcmp()
2008-10-03  Hans Breuer  <hans@breuer.org>

	* **/makefie.msc gimpdefs.msc app/gimpcore.def : updated
	* app/core/gimpcurve.c : include <string.h> for memcmp()
	* app/gegl/gimpcurvesconfig.c : include <string.h> for strcmp()

svn path=/trunk/; revision=27118
2008-10-03 19:27:54 +00:00
Michael Natterer a3d0c68a70 fix calculation of final lookup table to not darken the image.
2008-09-25  Michael Natterer  <mitch@gimp.org>

	* app/base/colorize.c (colorize_calculate): fix calculation of
	final lookup table to not darken the image.


svn path=/trunk/; revision=27062
2008-09-25 18:14:05 +00:00
Tor Lillqvist b8f94b37b3 app/base/base-utils.h The return type of get_pid() should be gint, not
2008-09-04  Tor Lillqvist  <tml@novell.com>

	* app/base/base-utils.h
	* app/base/base-utils.c: The return type of get_pid() should be
	gint, not GPid. This matches also the C library on Windows, in
	which the return type of getpid() is int, not a pointer or
	intptr_t. The use for GPid in the GLib API is as a "handle" to a
	descendant processes, returned by the g_spawn_*() functions, and
	passed to the g_child_watch_*() functions, not as a "process
	identifier".


svn path=/trunk/; revision=26866
2008-09-04 17:54:06 +00:00
Sven Neumann a5f8345609 added clear_region().
2008-09-01  Sven Neumann  <sven@gimp.org>

	* app/paint-funcs/paint-funcs.[ch]: added clear_region().

	* app/base/tile-manager-crop.c
	* app/core/gimpchannel.c
	* app/core/gimpimage-merge.c
	* app/core/gimpmaskundo.c
	* app/core/gimpprojection-construct.c: use it instead of calling
	color_region() with a zero color.



svn path=/trunk/; revision=26826
2008-09-01 20:44:00 +00:00
Sven Neumann 6e764915d5 updated documentation.
2008-08-26  Sven Neumann  <sven@gimp.org>

	* app/base/pixel-surround.c: updated documentation.


svn path=/trunk/; revision=26783
2008-08-26 21:06:09 +00:00
Sven Neumann 55db28831c more fiddling with the edges
svn path=/trunk/; revision=26770
2008-08-26 07:41:53 +00:00
Sven Neumann 281cefc12d attempt to fix the newly introduced smear edge mode.
2008-08-26  Sven Neumann  <sven@gimp.org>

	* app/base/pixel-surround.c: attempt to fix the newly introduced
	smear edge mode.


svn path=/trunk/; revision=26769
2008-08-26 07:24:55 +00:00
Sven Neumann 972309fe48 changed to silently return in case of out-of-bounds access. There's code
2008-08-25  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.c (read_pixel_data_1): changed to 
silently
	return in case of out-of-bounds access. There's code that relies
	on this.

	* app/base/pixel-surround.[ch]: added SMEAR as another edge
	strategy for the PixelSurround helper.

	* core/gimp-transform-region.c: changed accordingly.


svn path=/trunk/; revision=26767
2008-08-25 20:38:52 +00:00
Sven Neumann 3e5d269e59 provide a macro version of tile_data_pointer().
2008-08-25  Sven Neumann  <sven@gimp.org>

	* app/base/tile-private.h: provide a macro version of
	tile_data_pointer().

	* app/base/tile.c (tile_data_pointer): turned into a wrapper
	around the TILE_DATA_POINTER() macro.

	* app/base/tile-manager.c (read_pixel_data) (read_pixel_data_1)
	(write_pixel_data) (write_pixel_data_1): access tile struct
	members directly and use the new macro to access the tile data.


svn path=/trunk/; revision=26757
2008-08-25 13:00:28 +00:00
Sven Neumann 47afc75282 removed redundant check that is already performed by
2008-08-25  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.c (read_pixel_data_1): removed redundant
	check that is already performed by tile_manager_get_tile_num().
	Warn if an out-of-bounds read is requested, instead of silently
	doing nothing.



svn path=/trunk/; revision=26755
2008-08-25 12:00:58 +00:00
Sven Neumann 9e163bb41b implement tile_manager_get_tile_coordinates() by calling
2008-08-08  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.c: implement
	tile_manager_get_tile_coordinates() by calling
	tile_manager_get_tile_col_row() instead of the other way around.
	Saves two multiplications and divisions for each call of
	tile_manager_get_tile_col_row().


svn path=/trunk/; revision=26446
2008-08-08 11:33:18 +00:00
Sven Neumann 7f05996abc simplified tile_manager_map_tile()
svn path=/trunk/; revision=26439
2008-08-08 11:00:29 +00:00
Sven Neumann 576ea3cda1 whitespace fix
svn path=/trunk/; revision=26438
2008-08-08 10:57:38 +00:00
Sven Neumann c10f60e4c8 introduced utility function tile_manager_allocate_tiles() to avoid code
2008-08-08  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.c: introduced utility function
	tile_manager_allocate_tiles() to avoid code duplication.


svn path=/trunk/; revision=26437
2008-08-08 10:55:46 +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 1323200809 renamed a variable.
2008-08-07  Sven Neumann  <sven@gimp.org>

	* app/base/tile.c (tile_attach): renamed a variable.


svn path=/trunk/; revision=26428
2008-08-07 20:08:21 +00:00
Sven Neumann eb92ab8b22 fixed broken copy-on-write code. The old code did not insert the new tile
2008-08-07  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.c (tile_manager_invalidate_tile): fixed
	broken copy-on-write code. The old code did not insert the new
	tile in the tile-manager's tile pointer array.

	(tile_manager_map): changed in a similar way as
	tile_manager_invalidate_tile(). This code was not broken, but it
	is easier to read now.

	* app/base/tile-private.h: moved a comment.

	* app/core/gimpselection.c (gimp_selection_extract): removed
	workaround for above bug.


svn path=/trunk/; revision=26419
2008-08-07 15:29:02 +00:00
Sven Neumann ae07d6218c app/base/tile-manager.h moved a misplaced comment to the right place.
2008-08-05  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.h
	* app/base/tile-pyramid.h: moved a misplaced comment to the 
right
	place.


svn path=/trunk/; revision=26382
2008-08-05 15:10:47 +00:00
Sven Neumann 4368010863 added new method gimp_histogram_duplicate().
2008-07-22  Sven Neumann  <sven@gimp.org>

	* app/base/gimphistogram.[ch]: added new method
	gimp_histogram_duplicate().

	* app/widgets/gimphistogrameditor.c
	(gimp_histogram_editor_frozen_update): instead of recalculating
	the histogram, use a duplicate for the background histogram.


svn path=/trunk/; revision=26270
2008-07-22 09:29:35 +00:00
Sven Neumann c7a8fc98eb formatting, to improve readability.
2008-07-11  Sven Neumann  <sven@gimp.org>

	* app/base/color-balance.c (color_balance_create_lookup_tables):
	formatting, to improve readability.


svn path=/trunk/; revision=26115
2008-07-11 06:22:17 +00:00
Michael Natterer 2a064f55a6 remove PixelProcessorFunc typedef.
2008-05-21  Michael Natterer  <mitch@gimp.org>

	* app/base/pixel-processor.h: remove PixelProcessorFunc typedef.

	* app/base/base-types.h: add it here.

	* app/config/gimpbaseconfig.c: #include "base/base-types.h"

	* app/core/gimpdrawable-curves.c
	* app/core/gimpdrawable-desaturate.c
	* app/core/gimpdrawable-invert.c: remove pixel processor include.

	* app/core/gimpdrawable-levels.c: port to gimp_drawable_process().


svn path=/trunk/; revision=25738
2008-05-21 19:07:26 +00:00
Sven Neumann c19b2170ff changed to take a pointer as first argument as all PixelProcessor
2008-05-21  Sven Neumann  <sven@gimp.org>

	* app/base/desaturate.[ch]: changed to take a pointer as first
	argument as all PixelProcessor functions.

	* app/core/gimpdrawable-desaturate.c: changed accordingly.

	* app/tools/gimpdesaturatetool.[ch]: added legacy code path.

svn path=/trunk/; revision=25730
2008-05-21 14:20:15 +00:00
Sven Neumann 9519a1751d fold the three desaturate functions into one
svn path=/trunk/; revision=25729
2008-05-21 13:51:26 +00:00
Sven Neumann 595d54eddf app/base/Makefile.am moved legacy desaturate code here.
2008-05-21  Sven Neumann  <sven@gimp.org>

	* app/base/Makefile.am
	* app/base/desaturate.[ch]: moved legacy desaturate code here.

	* app/core/gimpdrawable-desaturate.c: use the code in app/base.

svn path=/trunk/; revision=25728
2008-05-21 13:34:07 +00:00
Sven Neumann ada10e7577 applied patch from Michael Deal that fixes use of the overlap option (bug
2008-04-28  Sven Neumann  <sven@gimp.org>

	* app/base/hue-saturation.c (hue_saturation): applied patch from
	Michael Deal that fixes use of the overlap option (bug #527085).


svn path=/trunk/; revision=25539
2008-04-28 14:46:20 +00:00
Mukund Sivaraman 0708ffea76 Fixes for some Sparse reported issues in app/
2008-03-28  Mukund Sivaraman  <muks@mukund.org>

        Fixes for some Sparse reported issues in app/

        * app/core/gimpdrawable-operation.c: Added prototype for            
        gegl_node_add_child().

        * app/core/gimpcurve.c: Remove C99 code       
                                
        * app/tools/gimpcurvestool.c 
        * app/tools/gimpperspectiveclonetool.c 
        * app/vectors/gimpstroke.c: Mark functions as static.

        * app/base/siox.c: state is a pointer.

        * app/plug-in/gimppluginprocframe.c: values is a pointer.

        * app/plug-in/plug-in-rc.c: plug_in_rc_parse() returns a pointer.

        * app/plug-in/gimpinterpreterdb.c: Check program[0] for '\0'
        instead of the pointer program itself.


svn path=/trunk/; revision=25292
2008-03-28 23:18:19 +00:00
Michael Natterer 3a66deae00 add get_pid() which returns getpid().
2008-02-07  Michael Natterer  <mitch@gimp.org>

	* app/base/base-utils.[ch]: add get_pid() which returns getpid().

	* app/base/base.c
	* app/base/tile-swap.c
	* app/core/gimp-utils.c
	* app/plug-in/gimppluginshm.c
	* app/widgets/gimpselectiondata.c
	* tools/pdbgen/pdb/misc.pdb: use it instead of getpid() and remove
	all the #ifdef'ed includes getpid() needs.

	* tools/pdbgen/app.pl: remove support for these includes. Also
	remove some perl cruft in the include handling which is not needed
	any longer.

	* app/pdb/misc_cmds.c: regenerated.


svn path=/trunk/; revision=24827
2008-02-07 13:19:15 +00:00
Michael Natterer 50ad5cfd32 add refcounting and replace free() API by ref() and unref().
2008-02-04  Michael Natterer  <mitch@gimp.org>

	* app/base/gimphistogram.[ch]: add refcounting and replace free()
	API by ref() and unref().

	* app/core/gimpdrawable-equalize.c
	* app/core/gimpdrawable-levels.c
	* app/widgets/gimphistogrameditor.c
	* tools/pdbgen/pdb/color.pdb: replace calls to
	gimp_histogram_free() by gimp_histogram_unref().

	* app/pdb/color_cmds.c: regenerated.

	* app/widgets/gimphistogramview.c: reference the histograms so we
	don't need the widget's users to keep them around while the widget
	exists.

	* app/tools/gimpcurvestool.[ch]: remove the histogram from the
	tool struct and just create one locally to set it on the histogram
	view widget.

	Unrelated:

	* app/tools/gimplevelstool.[ch]
	* app/tools/gimpthresholdtool.[ch]: renamed "hist" members to
	"histogram" plus some cleanup.


svn path=/trunk/; revision=24792
2008-02-04 21:41:57 +00:00
Michael Natterer 31a5214fd5 app/base/tile-manager.c use G_STRLOC instead of G_GNUC_FUNCTION (which is
2008-01-28  Michael Natterer  <mitch@gimp.org>

	* app/base/tile-manager.c
	* plug-ins/common/lcms.c: use G_STRLOC instead of
	G_GNUC_FUNCTION (which is now deprecated).


svn path=/trunk/; revision=24727
2008-01-28 13:19:42 +00:00
Michael Natterer b25559c3e5 app/gegl/Makefile.am app/gegl/gegl-types.h new config object.
2008-01-24  Michael Natterer  <mitch@gimp.org>

	* app/gegl/Makefile.am
	* app/gegl/gegl-types.h
	* app/gegl/gimpcolorbalanceconfig.[ch]: new config object.

	* app/gegl/gimpoperationcolorbalance.[ch]: use it.

	* app/tools/gimpcolorbalancetool.[ch]: port to
	GimpColorBalanceConfig and use the old ColorBalance cruft only in
	map(). The effect of the GEGL operator is now even more different
	from the cruft code because I removed a hack that was applying an
	additional factor when mapping between the ColorBalance values and
	the new properties, but that was only a workaround to make it look
	more similar anyway. Will have to fix this properly.

	* app/base/color-balance.[ch]: remove API that is now obsolete.


svn path=/trunk/; revision=24701
2008-01-24 10:37:21 +00:00
Michael Natterer 5d07620d58 new utility function which maps a single value.
2008-01-23  Michael Natterer  <mitch@gimp.org>

	* app/gegl/gimpoperationlevels.[ch]
	(gimp_operation_levels_map_input): new utility function which maps
	a single value.

	* app/tools/gimplevelstool.[ch] (levels_update_adjustments): use the
	new function to create the input arrays for gimp_color_bar_set_buffer().

	Removed the Levels struct from the GimpLevelsTool struct and only
	use it in map() when needed.

	* app/base/levels.[ch]: remove obsolete API and struct members.


svn path=/trunk/; revision=24682
2008-01-23 08:48:29 +00:00
Sven Neumann 61b147391a minor cleanups.
2008-01-22  Sven Neumann  <sven@gimp.org>

	* app/base/boundary.c: minor cleanups.


svn path=/trunk/; revision=24675
2008-01-22 19:44:03 +00:00
Michael Natterer 14a20cc3d7 app/gegl/Makefile.am app/gegl/gegl-types.h new config object.
2008-01-22  Michael Natterer  <mitch@gimp.org>

	* app/gegl/Makefile.am
	* app/gegl/gegl-types.h
	* app/gegl/gimphuesaturationconfig.[ch]: new config object.

	* app/gegl/gimpoperationhuesaturation.[ch]: remove all properties
	and add a "config" property. Also add API to map a single GimpRGB
	needed by the hue-saturation tool's color areas.

	* app/tools/gimphuesaturationtool.[ch]: switch to using
	GimpHueSaturationConfig, use the old HueSaturation struct only in
	map().

	* app/base/hue-saturation.[ch]: remove API that's no longer needed.


svn path=/trunk/; revision=24667
2008-01-22 09:49:40 +00:00
Michael Natterer 455dad245e port to GEGL and use the new code path when use-gegl is TRUE.
2008-01-21  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable-levels.c: port to GEGL and use the new
	code path when use-gegl is TRUE.

	* app/base/levels.[ch]: remove stretch and pick APIs which are not
	used any longer.


svn path=/trunk/; revision=24659
2008-01-21 12:55:18 +00:00
William Skaggs ea9d46fa71 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/base/lut-funcs.c (equalize_lut_fuct): Don't 
	equalize the alpha channel.  Fixes bug #510210.

svn path=/trunk/; revision=24648
2008-01-18 18:14:14 +00:00
Sven Neumann e8fcbfcfa3 minor cleanup.
2008-01-16  Sven Neumann  <sven@gimp.org>

	* app/base/boundary.c: minor cleanup.


svn path=/trunk/; revision=24629
2008-01-16 20:05:29 +00:00
Michael Natterer 8bf1e33034 minor formatting fix.
2008-01-12  Michael Natterer  <mitch@gimp.org>

	* app/base/color-balance.c: minor formatting fix.


svn path=/trunk/; revision=24605
2008-01-12 10:46:19 +00:00
Michael Natterer 6be63006ec add boxed type GIMP_TYPE_TILE_MANAGER.
2007-12-29  Michael Natterer  <mitch@gimp.org>

	* app/base/tile-manager.[ch]: add boxed type GIMP_TYPE_TILE_MANAGER.

	* app/gegl/gimpoperationtilesink.c
	* app/gegl/gimpoperationtilesource.c: use GParamSpecBoxed instead
	of GParamSpecPointer for the tile-manager properties and ref them
	properly. Some cleanup.


svn path=/trunk/; revision=24465
2007-12-29 13:46:13 +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 e080bb1f26 renamed tile_manager_validate() to tile_manager_validate_tile(). If no
2007-12-18  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager.[ch]: renamed tile_manager_validate() to
	tile_manager_validate_tile(). If no validate_proc is set,
	initialize the tile data to all zero when validating it. This way
	we never hand out uninitialized data and valgrind doesn't need to
	complain any longer.

	* app/base/tile.c: changed accordingly.

	* app/core/gimpselection.c: no need to set an extra validate_proc
	here as the default implementation now does the job for us.

svn path=/trunk/; revision=24389
2007-12-18 13:07:01 +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 0a7e4f0745 corrected formula for demultiplying the alpha value.
2007-12-13  Sven Neumann  <sven@gimp.org>

	* app/base/temp-buf.c (temp_buf_demultiply): corrected formula 
for
	demultiplying the alpha value.


svn path=/trunk/; revision=24356
2007-12-13 20:30:29 +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 48565e3011 code cleanup.
2007-12-13  Sven Neumann  <sven@gimp.org>

	* app/base/tile-manager-crop.c (tile_manager_crop): code cleanup.

svn path=/trunk/; revision=24346
2007-12-13 09:57:28 +00:00
Tor Lillqvist e11272148f app/base/tile-private.h Move the LARGE_SEEK and LARGE_TRUNCATE macros from
2007-12-12  Tor Lillqvist  <tml@novell.com>

	* app/base/tile-private.h
	* app/base/tile-swap.c: Move the LARGE_SEEK and LARGE_TRUNCATE
	macros from tile-private.h to tile-swap.c as they aren't used
	anywhere else, and the helper function used on Windows was static
	in tile-swap.c anyway. (#503124)


svn path=/trunk/; revision=24331
2007-12-12 08:57:14 +00:00
Hans Breuer 4c7289a54b an ugly but working variant for no varargs macros
2007-12-09  Hans Breuer  <hans@breuer.org>

	* app/gimp-log.h : an ugly but working variant for no varargs macros
	
	* app/base/base-utils.c(get_physical_memory_size) : fallback to
	GetMemoryStatus() for older compiler/sdk
	
	* app/core/gimplayer-floating-sel.c : second argument to g_set_error()
	is an uint32, not a pointer


svn path=/trunk/; revision=24306
2007-12-09 14:19:02 +00:00