Commit Graph

40 Commits

Author SHA1 Message Date
Ell
bb039c8401 app: use GimpDrawableFilter in gimp_drawable_apply_operation()
In gimp_drawable_apply_operation(), use a temporary
GimpDrawableFilter to apply the operation, instead of using a
shadow buffer.  This renders and composits the op directly into the
drawable buffer, avoiding an intermediate buffer, requiring less
space and speeding up processing.

(cherry picked from commit b201f73562)
2018-12-29 14:28:51 -05:00
a88c0ffb93 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:47:19 +02:00
Ell
e1b1611ec4 app: add crop_input parameter to gimp_gegl_apply_operation()
Add a crop_input parameter to gimp_gegl_apply_[cached_]operation().
When TRUE, the functions crop the op's input to the destination
rect.  This is particularly useful for functions that process the
entire input in one go (by means of get_cached_region()).  See the
next commit.

Pass crop_input = FALSE at all call sites for now, to keep the
current behavior.
2018-03-22 13:46:28 -04:00
697572ccc0 app,libgimp*: fix includes to follow our include policy
- don't include <gdk-pixbuf/gdk-pixbuf.h> in headers in app/
- instead, include it in many .c files instead of <glib-object.h>,
  finally acknowledging the fact that app/ depends on gdk-pixbuf almost
  globally
- fix up includes as if libgimpbase depended in GIO, which it soon will
2013-10-15 01:58:39 +02:00
9072bf331a app: rename GimpImageMapConfig to GimpSettings
It was misnamed from the beginning and has no relation to GimpImageMap
except that it happens to be used by GimpImageMapTools. Now it feels
less weird to potentially use it for other settings too.
2013-05-25 15:26:18 +02:00
ca4dadefa4 app: remove gimp_drawable_apply_operation_to_buffer()
it was a completely silly wrapper. Use gimp_gegl_apply_operation()
directly instead.
2012-10-22 16:14:56 +02:00
eb89a545d5 app: move core/gimp-apply-operation.[ch] to gegl/gimp-gegl-apply-operation.[ch] 2012-10-22 16:03:40 +02:00
1a624d4df4 app: remove many includes of "gegl/gimp-gegl-utils.h" 2012-05-10 23:12:39 +02:00
be853cd239 app: remove "gboolean linear" from all apply_operation APIs
thes were all unused and we want to get rid of that anyway.
2012-05-02 17:46:13 +02:00
99ae46b4ed app: turn the drawable's shadow tiles into a shadow buffer 2012-05-02 17:46:10 +02:00
938c686daf app: minor cleanup and include removal 2012-05-02 17:46:07 +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
14c259cc3e app: remove gimp_drawable_apply_operation_to_tiles() 2012-05-02 17:45:59 +02:00
9a09d3a762 app: drop "babl" from gimp_foo_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
f15e8a1ea2 app: add gimp_apply_operaion() as generic buffer-to-buffer utility function
and use it from gimpdrawable-operation.c
2012-05-02 17:45:53 +02:00
52d033e2c1 app: don't need an attached item for applying an op to tiles/buffers 2012-05-02 17:45:52 +02:00
3814c9f0a6 app: add gimp_drawable_apply_operation_to_buffer() and use it in ony place 2012-05-02 17:45:48 +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
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
4c6907c53c app: formatting cleanup in gimpdrawable-operation.c 2012-05-02 17:45:46 +02:00
6d3a8fe73d app: rename gimp_drawable_apply_operation_with_config()
to gimp_drawable_apply_operation_by_name() and allow to pass
a NULL config.
2012-05-02 17:45:46 +02:00
0623c7f365 app: remove the pointless core wrappers for the below simplified color stuff
Instead, provide gimp_drawable_apply_operation_with_config() and call
that from the PDB wrappers directly.
2012-05-02 17:45:45 +02:00
d258af9ea9 app: use gegl: prefix for ops 2012-05-02 17:45:44 +02:00
3bd8ee1a63 app: move new get_buffer() functions around; some general cleanup 2012-05-02 17:45:44 +02:00
0dfffa44a3 app: make gimp_drawable_apply_operation use the TileManager buffer backend 2012-05-02 17:45:44 +02:00
41cad26f12 app: don't run the main loop manually after calling gimp_progress_set_value() 2010-11-10 00:14:22 +01: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
301b990a46 app: add gimp_drawable_apply_operation_to_tiles()
which uses a passed-in tile manager instead of
the drawable's shadow tiles as sink.
2010-06-06 19:52:39 +02: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
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
befe387b88 no need to check for the 'dont-cache' property now that we depend on the
2008-06-04  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdrawable-operation.c (gimp_drawable_apply_operation):
	no need to check for the 'dont-cache' property now that we depend
	on the newer GEGL.

svn path=/trunk/; revision=25888
2008-06-04 12:54:52 +00:00
8a62ba6a5d changed order of parameters to be consistent with gimp_drawable_process().
2008-05-22  Sven Neumann  <sven@gimp.org>

	* app/core/gimpdrawable-operation.[ch]
	(gimp_drawable_apply_operation): changed order of parameters to be
	consistent with gimp_drawable_process().

	* app/core/gimpdrawable-process.[ch]: introduced a variant of
	gimp_drawable_process() for processing a GimpLut with
	gimp_lut_process().

	* 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-posterize.c
	* app/core/gimpdrawable-threshold.c: changed accordingly.

svn path=/trunk/; revision=25754
2008-05-22 11:52:02 +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
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
3c6b68c9cd Use #warning only if compiler is gcc.
2008-03-29  Mukund Sivaraman  <muks@mukund.org>

        * app/core/gimpdrawable-operation.c: Use #warning only if
        compiler is gcc.


svn path=/trunk/; revision=25297
2008-03-29 10:48:38 +00:00
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
88b021c024 app/core/Makefile.am new files containing gimp_drawable_apply_operation()
2008-01-02  Michael Natterer  <mitch@gimp.org>

	* app/core/Makefile.am
	* app/core/gimpdrawable-operation.[ch]: new files containing
	gimp_drawable_apply_operation() which applies a gegl operation
	to a drawable's selected pixels using shadow tiles. Will soon
	be used in more places than just invert.

	* app/core/gimpdrawable-invert.c: use it here, makes
	gimp_drawable_invert() a 3-liner.


svn path=/trunk/; revision=24506
2008-01-02 20:16:11 +00:00