Commit Graph

131 Commits

Author SHA1 Message Date
a0c1007b66 app: port GimpDrawableUndo, GimpDrawable::push_undo() and ::swap_tiles()
which gets rid of the manual implementation of sparse undo buffers,
but GEGL will take care of proper COW here soo enough.
2012-05-02 17:46:08 +02:00
f8b1372038 app: make use of GIMP_GEGL_RECT in more places 2012-05-02 17:46:05 +02:00
fe3220ae6f app: remove write property of GeglBuffer backend 2012-05-02 17:46:05 +02:00
0bcae125b5 app: merge gimp_drawable_get_read_buffer() and get_write_buffer()
into get_buffer(). The loss of zero copy will be compensated soon.
2012-05-02 17:46:04 +02:00
9a09d3a762 app: drop "babl" from gimp_foo_get_babl_format[_with_alpha]() 2012-05-02 17:45:58 +02:00
e9ecc40f02 app: add GimpPickable::get_babl_format_with_alpha() 2012-05-02 17:45:58 +02:00
d146cc40ea app: require a Babl for all buffers created on top of tiles
Fixes quite some introduced glitches with indexed mode because
the buffers use the right pixel format now.
2012-05-02 17:45:56 +02:00
f05de34cd6 app: add GimpPickable::get_babl_format() 2012-05-02 17:45:55 +02:00
7c3a796dfc app: added GimpPickable::get_buffer()
Add cached buffers to GimpProjection and GimpImageMap, and use
the new API where possible.
2012-05-02 17:45:50 +02:00
4d18bda0c7 app: cache readable and writable buffers in the drawable
As API, replace gimp_drawable_create_buffer() by
gimp_drawable_get_read_buffer() and gimp_drawable_get_write_buffer().
2012-05-02 17:45:48 +02:00
7bab13c9a0 app: replace more copy_region() by gegl_buffer_copy() 2012-05-02 17:45:48 +02:00
b95fc4f8d5 app: rename gimp_drawable_get_buffer() and gimp_tile_manager_get_gegl_buffer()
to foo_create_buffer() because they return new objects.
2012-05-02 17:45:47 +02:00
3bd8ee1a63 app: move new get_buffer() functions around; some general cleanup 2012-05-02 17:45:44 +02:00
35f1518afd imagemap: unref buffers as soon as possible 2012-05-02 17:45:44 +02:00
bb2ef0cede app: use GeglBuffer instead of TileManager in imagemap 2012-05-02 17:45:44 +02:00
9f1187f6a5 app: Prefix TileManager functions
read_pixel_data() -> tile_manager_read_pixel_data()
write_pixel_data() -> tile_manager_write_pixel_data()
read_pixel_data_1() -> tile_manager_read_pixel_data_1()
write_pixel_data_1() -> tile_manager_write_pixel_data_1()

for consistency.
2011-09-07 12:08:43 +02:00
18b9ba1c87 app: Add some comment documentation to code 2011-02-07 03:29:23 +02:00
33479c1086 app: use gegl_node_has_pad() instead of gegl_node_get_pad() 2011-01-22 23:54:25 +01:00
e7f8758f5c app: remove gimp_image_map_is_busy() again 2010-11-10 19:37:58 +01:00
74e5864fa6 Merge branch 'master' into soc-2010-cage-2 2010-09-26 23:08:15 +03:00
095ae5cc9b app: move mask_bounds() and mask_intersect() from GimpDrawable to GimpItem
There is nothing drawable-specific in there, and having them on
GimpItem enables some simplifications, esp. in upcoming PDB
wrappers. None of these refactorings is in this commit though.
2010-09-07 21:30:46 +02:00
c06ed13a14 core: Add function to test if image map is busy 2010-08-15 02:32:31 +03:00
b2b2b41e62 Get rid of artificial compiler warnings
Get rid of artificial compiler warnings generated with the #warning
directive. They pollute the build output and don't work as incentives
for fixing stuff.
2009-07-20 12:47:59 +02:00
13cb156a80 Get rid of more x1,y1,x2,y2 uglyness
(gimp_drawable_push_undo): change x1,y1,x2,y2 parameters to
x,y,witdh,height and update all callers accordingly.
2009-06-16 22:59:07 +02:00
ce697ffb54 Introduce and use gimp_image_map_update_undo_tiles()
Move undo tiles updating into a helper function
gimp_image_map_update_undo_tiles() so the logic of
gimp_image_map_apply() becomes clearer.

svn path=/trunk/; revision=27997
2009-02-07 09:31:10 +00:00
2fa083c720 Introduce and use gimp_image_map_kill_any_idle_processors()
Introduce and use a local helper function
gimp_image_map_kill_any_idle_processors() to get a rid of some code
duplication.

svn path=/trunk/; revision=27996
2009-02-07 09:31:06 +00:00
ccaa981b50 Introduce and use gimp_image_map_cancel_any_idle_jobs()
Introduce and use a local helper function
gimp_image_map_cancel_any_idle_jobs() to get a rid of some code
duplication.

svn path=/trunk/; revision=27995
2009-02-07 09:31:01 +00:00
72bb1965f8 Fix misindented return statement in gimpimagemap.c
svn path=/trunk/; revision=27994
2009-02-07 09:30:56 +00:00
d9b5207aa2 Change licence to GPLv3 (and to LGPLv3 for libgimp).
2009-01-17  Michael Natterer  <mitch@gimp.org>

	* all files with a GPL header and all COPYING files:

	Change licence to GPLv3 (and to LGPLv3 for libgimp).

	Cleaned up some copyright headers and regenerated the parsers in
	the ImageMap plugin.


svn path=/trunk/; revision=27913
2009-01-17 22:28:01 +00:00
83c66baef5 app/core/gimpchannel.c app/core/gimpdrawable-operation.c
2008-12-08  Sven Neumann  <sven@gimp.org>

	* app/core/gimpchannel.c
	* app/core/gimpdrawable-operation.c
	* app/core/gimpdrawablestack.c
	* app/core/gimpimage.c
	* app/core/gimpimagemap.c
	* app/core/gimplayer.c
	* app/core/gimpprojection.c: gegl_node_add_child() and
	gegl_node_remove_child() are public API in GEGL now.


svn path=/trunk/; revision=27770
2008-12-08 09:56:51 +00:00
97eb65b2ba renamed GeglNode shift to translate. Use "gegl:translate" instead of
2008-12-03  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagemap.c: renamed GeglNode shift to translate.
	Use "gegl:translate" instead of "gegl:shift".


svn path=/trunk/; revision=27749
2008-12-03 11:29:15 +00:00
198416450d add optional parameter "PixelRegion *destPR" to
2008-11-08  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpdrawable.[ch]: add optional parameter "PixelRegion
	*destPR" to GimpDrawable::apply_region().

	* app/core/gimpdrawable-combine.[ch]: if the passed destPR is !=
	NULL, write the result of the combination into that region instead
	of the drawable's tiles. The region must have the exact size of
	the result.

	* app/core/gimp-edit.c
	* app/core/gimpchannel.c
	* app/core/gimpdrawable-blend.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-shadow.c
	* app/core/gimpdrawable-stroke.c
	* app/core/gimpimagemap.c
	* app/core/gimplayer-floating-sel.c
	* app/paint/gimppaintcore.c: pass NULL as destPR. Code actually
	using this feature follows.


svn path=/trunk/; revision=27574
2008-11-08 19:52:18 +00:00
740ab5e633 renamed gimp_item_width() to gimp_item_get_width() and gimp_item_height()
2008-11-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpitem.[ch]: renamed
	gimp_item_width() to gimp_item_get_width() and
	gimp_item_height() to gimp_item_get_height().

	* app/actions/channels-commands.c
	* app/actions/drawable-commands.c
	* app/actions/layers-commands.c
	* app/core/<many>.c
	* app/dialogs/offset-dialog.c
	* app/dialogs/resize-dialog.c
	* app/dialogs/scale-dialog.c
	* app/display/gimpdisplayshell-dnd.c
	* app/display/gimpdisplayshell.c
	* app/paint/gimpbrushcore.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimpink.c
	* app/paint/gimppaintcore.c
	* app/paint/gimpsmudge.c
	* app/text/gimptextlayer-xcf.c
	* app/text/gimptextlayer.c
	* app/tools/gimpaligntool.c
	* app/tools/gimpeditselectiontool.c
	* app/tools/gimpforegroundselecttool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimprectangletool.c
	* app/tools/gimpregionselecttool.c
	* app/tools/gimptexttool.c
	* app/vectors/gimpvectors.c
	* app/vectors/gimpvectorsmodundo.c
	* app/widgets/gimptoolbox-dnd.c
	* app/widgets/gimpviewrendererdrawable.c
	* app/widgets/gimpviewrenderervectors.c
	* app/xcf/xcf-load.c
	* app/xcf/xcf-save.c
	* tools/pdbgen/pdb/drawable.pdb: changed accordingly.

	* app/pdb/drawable-cmds.c: regenerated.


svn path=/trunk/; revision=27531
2008-11-03 00:09:01 +00:00
a9e187586b Prefix the GIMP GEGL operations with "gimp:" instead of "gimp-" so we
* app/gegl/gimpoperation*.c: Prefix the GIMP GEGL operations with
"gimp:" instead of "gimp-" so we follow the GEGL prefix style and
better serialize to XML.

* app/tools/gimp*tool.c

* app/core/gimpdrawable-*.c
* app/core/gimpdrawable.c
* app/core/gimpimagemap.c
* app/core/gimpprojection.c: Changed accordingly.

svn path=/trunk/; revision=27512
2008-11-01 12:08:35 +00:00
880a699cae configure.in require GEGL >= 0.0.21.
2008-10-14  Michael Natterer  <mitch@gimp.org>

	* configure.in
	* app/sanity.c: require GEGL >= 0.0.21.

	* app/core/gimpchannel.c
	* app/core/gimpdrawable-brightness-contrast.c
	* app/core/gimpdrawable-invert.c
	* app/core/gimpimage.c
	* app/core/gimpimagemap.c
	* app/core/gimplayer.c
	* app/gegl/gimp-gegl-utils.c
	* app/tools/gimpbrightnesscontrasttool.c: GEGL operation names
	are now "gegl:"-prefixed.

	* app/core/gimpimagemap.c: set the node's "dont-cache" property
	unconditionally.


svn path=/trunk/; revision=27284
2008-10-14 22:44:42 +00:00
41fef08ad7 only create and use a timer if GIMP_UNSTABLE is defined.
2008-08-23  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagemap.c (gimp_image_map_init): only create and
	use a timer if GIMP_UNSTABLE is defined.


svn path=/trunk/; revision=26720
2008-08-22 22:47:06 +00:00
48dcf22eab fixed issues with the profiling code.
2008-05-17  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagemap.c: fixed issues with the profiling code.


svn path=/trunk/; revision=25691
2008-05-17 19:15:49 +00:00
425c734eea Make the created GEGL graphs have the "dont-cache" property set to avoid
* app/core/gimpdrawable-operation.c:
* app/core/gimpimagemap.c: Make the created GEGL graphs have the
"dont-cache" property set to avoid unneeded caches.

svn path=/trunk/; revision=25689
2008-05-17 15:26:12 +00:00
9c0c73d4f1 added some basic benchmarking code. Will become optional but for now it is
2008-05-16  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagemap.c: added some basic benchmarking code.
	Will become optional but for now it is enabled by default.


svn path=/trunk/; revision=25679
2008-05-16 21:01:24 +00:00
e5be5664ed Move the shadow tiles from the image to the drawable. Fixes bug #100469.
2008-04-21  Michael Natterer  <mitch@gimp.org>

	Move the shadow tiles from the image to the drawable.
	Fixes bug #100469.

	* app/core/Makefile.am
	* app/core/gimpdrawable-shadow.[ch]: new files implementing
	the shadow tiles.

	* app/core/gimpimage.[ch]: remove the shadow tile manager from the
	GimpImage struct. Remove gimp_image_get_shadow_tiles() and
	_free_shadow_tiles().

	* app/core/gimpdrawable.[ch]: add the shadow tile manager
	here. Remove get_shadow_tiles() and merge_shadow(). Free the
	shadow tiles in finalize and when the drawable gets removed from
	the image.

	* app/core/gimpdrawable-brightness-contrast.c
	* app/core/gimpdrawable-color-balance.c
	* app/core/gimpdrawable-colorize.c
	* app/core/gimpdrawable-curves.c
	* app/core/gimpdrawable-desaturate.c
	* app/core/gimpdrawable-equalize.c
	* app/core/gimpdrawable-hue-saturation.c
	* app/core/gimpdrawable-invert.c
	* app/core/gimpdrawable-levels.c
	* app/core/gimpdrawable-operation.c
	* app/core/gimpdrawable-posterize.c
	* app/core/gimpdrawable-threshold.c
	* app/core/gimpimagemap.c: changed accordingly. Free the shadow tiles
	after using them.

	* app/plug-in/gimpplugin-cleanup.[ch]: add
	gimp_plug_in_cleanup_add_shadow() and _remove_shadow() which keep
	track of whether shadow tiles were created on behalf of a plug-in
	procedure.

	(gimp_plug_in_cleanup): free shadow tiles which were created but
	not destroyed by a plug-in procedure.

	* app/plug-in/gimpplugin-message.c (plug_in_handle_tile_request):
	call gimp_plug_in_cleanup_add_shadow() whenever a plug-in requests
	shadow tiles.

	* tools/pdbgen/pdb/drawable.pdb: use the new drawable shadow
	API. Add new procedure gimp-drawable-free-shadow. Call
	gimp_plug_in_cleaup_remove_shadow() when it gets called.

	* tools/pdbgen/pdb/image.pdb: deprecate gimp-image-free-shadow.
	Calling it has no effect any longer.

	* app/pdb/drawable-cmds.c
	* app/pdb/image-cmds.c
	* app/pdb/internal-procs.c
	* libgimp/gimpimage_pdb.[ch]
	* libgimp/gimpdrawable_pdb.[ch]: regenerated.


svn path=/trunk/; revision=25510
2008-04-21 17:20:51 +00:00
fdb9060f73 app/tools/gimpgegltool.c (gimp_param_spec_duplicate) add support for
2008-02-06  Michael Natterer  <mitch@gimp.org>

	* app/tools/gimpgegltool.c (gimp_param_spec_duplicate)
	* app/widgets/gimppropwidgets.c (gimp_prop_table_new): add support
	for GParamSpecEnum.

	* app/core/gimpimagemap.c (gimp_image_map_apply): add even better
	checks for input and output pads of the passed operation.


svn path=/trunk/; revision=24824
2008-02-06 18:38:29 +00:00
e9faafdeb9 when using a source operation, blend its output over the original image
2008-02-06  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimagemap.c (gimp_image_map_apply): when using a
	source operation, blend its output over the original image using
	"over" instead of simply replacing the original image.


svn path=/trunk/; revision=24819
2008-02-06 11:02:31 +00:00
698fabcdef use gegl_node_get_pad() instead of gegl_node_find_property() to find out
2008-02-05  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimagemap.c (gimp_image_map_apply): use
	gegl_node_get_pad() instead of gegl_node_find_property() to find
	out whether the node has an "input" pad.

	* app/tools/gimpgegltool.c: #include "core/gimpimagemap.h"


svn path=/trunk/; revision=24812
2008-02-05 17:53:37 +00:00
d08028320f do the right thing for operations without "input" pad so we can use all
2008-02-05  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimagemap.c (gimp_image_map_apply): do the right
	thing for operations without "input" pad so we can use all source
	operations too.

	* app/tools/gimpimagemaptool.[ch]: make
	gimp_image_map_tool_create_map() public for the time being.

	* app/tools/gimpgegltool.c (gimp_gegl_tool_operation_changed):
	recreate the GimpImageMap so we can switch from filter to source
	operations and back.


svn path=/trunk/; revision=24810
2008-02-05 13:54:25 +00:00
dc65f5fc20 add typedef GimpImageMapApplyFunc here.
2008-01-09  Michael Natterer  <mitch@gimp.org>

	* app/core/core-types.h: add typedef GimpImageMapApplyFunc here.

	* app/core/gimpimagemap.[ch] (gimp_image_map_new): add apply_func
	and apply_data parameters.

	(gimp_image_map_apply): remove them here and add a GeglRectangle
	parameter which is the visible area of the affected drawable.

	* app/tools/gimpimagemaptool.[ch]: keep apply_func and apply_data
	around in the GimpImageMapTool struct.

	(gimp_image_map_tool_create_map): pass them to gimp_image_map_new().

	(gimp_image_map_tool_map): call gimp_image_map_apply() here and
	pass the drawable's visible rectangle.

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcolorizetool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimpthresholdtool.c (init): set apply_func and
	apply_data in the parent instance.

	(map): remove calls to gimp_image_map_apply().


svn path=/trunk/; revision=24573
2008-01-09 01:06:46 +00:00
fb573473c9 hardcode a declaration of gegl_node_add_child() in here for now.
2008-01-05  Manish Singh  <yosh@gimp.org>

        * app/core/gimpimagemap.c: hardcode a declaration of
        gegl_node_add_child() in here for now.

svn path=/trunk/; revision=24539
2008-01-05 22:25:06 +00:00
15a50be8fe switch tile sources and sinks to assume linear data.
2008-01-04  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimagemap.c (gimp_image_map_apply): switch tile
	sources and sinks to assume linear data.


svn path=/trunk/; revision=24526
2008-01-04 14:54:00 +00:00
8e638b0b97 quite some cleanup (use GeglRectangle more globally and don't leave stuff
2008-01-03  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimagemap.c: quite some cleanup (use GeglRectangle
	more globally and don't leave stuff around if we abort for
	whatever reason).


svn path=/trunk/; revision=24516
2008-01-03 19:28:33 +00:00
d6ab4d19bd First actual image processing with GEGL! Wheeeee :-)
2007-12-30  Michael Natterer  <mitch@gimp.org>

	First actual image processing with GEGL! Wheeeee :-)

	* app/core/gimpimagemap.[ch]: added code to use gegl instead of the
	old apply_func and apply_data.

	(gimp_image_map_new): add GeglNode parameter that, if passed,
	switches the whole thing to using a gegl graph with this node
	as central processing node.

	* app/tools/gimpimagemaptool.[ch]: add virtual function
	get_operation() which, if implemented, returns a GeglNode to pass
	to gimp_image_map_new(). Added a "Use GEGL" toggle so we can
	switch between legacy and gegl code for the migration period.

	* app/tools/gimpbrightnesscontrasttool.[ch]: implement
	get_operation() and return a brightness-contrast node.

	(gimp_briughtness_contrast_tool_map): set the node's properties
	from the GUI.


svn path=/trunk/; revision=24488
2007-12-30 17:47:37 +00:00
2f77a15f39 update the drawable, not the image. This change was missing in the fix for
2007-11-05  Sven Neumann  <sven@gimp.org>

	* app/core/gimpimagemap.c (gimp_image_map_clear): update the
	drawable, not the image. This change was missing in the fix for
	bug #490182. Fixes bug #493639.


svn path=/trunk/; revision=24061
2007-11-05 09:17:29 +00:00