Commit Graph

89 Commits

Author SHA1 Message Date
Jehan f2fb98cb69 Issue #6610: crashes on free select for images of certain dimensions.
g_alloca() is unadvised. Even though it might be more efficient in some
specific cases, it is pretty subject to stack overflow when a lot of
memory is requested.

Let's allocate dynamic memory instead. To avoid doing it too much, let's
just reuse the same pointer especially since region of interest will
usually be the same size when iterating a buffer, except for border
ones (which would usually be smaller, so we can use the same allocated
buffer again). I still make size checks, just in case.
2021-08-04 14:41:44 +00:00
Niels De Graef 85d9730936 Add some missing (nullable) annotations
Fixes https://gitlab.gnome.org/GNOME/gimp/-/issues/4750
2020-05-01 15:34:56 +02:00
Ell d920569771 app: add support for offset buffers in GimpScanConvert
Ditto.
2020-02-03 21:21:09 +02:00
Niels De Graef 1dda60154c Use "Returns:" to annotate return values
To be able to annotate return values through GObject-introspection, you
need to make sure it is tagged with `Returns:` and not something else.
2019-08-03 07:53:47 +00:00
Ell 053e5edc93 libgimpcolor, app, modules, plug-ins: remove GEGL_ITERATOR2 define
... it's no longer needed, since GEGL commit
gegl@9dcd2cde63f95a080bf16a58c10e9ffbdd99aace.

Partially reverts commits:

6fca9959c7
cc10af72cc
49c53568d7
8edbc0d491
29f63616d2
3a2014984d
ee48ec6877
4165a315d5
764085278f
b7633c722e
6ab12061b7
754a3c5b18
22b4b647bd
55b3438328
c6d23add65
f03a84d607
822f9f0d2b
95358ca1fa
cdda37f4ee
41e8035635
6761da42b2
fb5d7832a8
97ed7817d8
46e9036578
ea9c5e6a49
24fbdfb591
beb4ecb238
4b77831e03
fcf113a39c
567ffe94ff
2018-12-02 11:15:37 -05:00
Øyvind Kolås d99cae4ab8 app: gimpscanconvert: migrate to new buffer iterator 2018-09-11 00:19:39 +02:00
Michael Natterer 5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
luz.paz 4a77ff2d3d Bug 795557 - Misc. typo fixes in source, comments and doxygen (pt3)
Found via `codespell` and grep.
2018-04-25 23:49:06 +02:00
Michael Natterer f2a98566d5 app: add gimpdrawable-fill.[ch]
for the filling code from gimpdrawable-stroke.[ch]; and clean up and
untangle the stroking and filling functions.
2016-03-07 21:33:42 +01:00
Michael Natterer b5530e9e3d Use the new GeglAccessMode enum instead of the old values 2014-07-02 02:00:35 +02:00
Michael Natterer 069996d75f app: some random code cleanup 2014-06-02 20:17:39 +02:00
Michael Natterer 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
Michael Natterer 3e132ba18a app: fix GimpScanConvert compositing (as opposed to replacing)
It's only used in the foreground select tool so nobody noticed
that it was broken.
2013-04-29 23:58:44 +02:00
Michael Natterer c4142d0574 app: change the value to render in the GimpScanConvert API to a 0..1 double 2012-05-13 23:13:53 +02:00
Michael Natterer e7618dab31 app: actually use the needed cairo stride in gimp_scan_convert_render_full() 2012-05-13 22:57:58 +02:00
Michael Natterer 1a624d4df4 app: remove many includes of "gegl/gimp-gegl-utils.h" 2012-05-10 23:12:39 +02:00
Øyvind Kolås bfb3cd60d1 app: adapt to API changes in gegl_buffer_iterator 2012-05-02 17:46:15 +02:00
Michael Natterer efbc4e61b0 app: more gegl_buffer_iterator_new() updates 2012-05-02 17:46:15 +02:00
Øyvind Kolås c872a9368e app: sprinkle level argument over process functions 2012-05-02 17:46:13 +02:00
Michael Natterer f67bcfa82b app: port the entire GimpScanConvert API to GeglBuffer 2012-05-02 17:46:04 +02:00
Michael Natterer 113f01feb2 app: port gimp_scan_convert_render_full() to GeglBufferIterator 2012-05-02 17:46:04 +02:00
Michael Natterer 7c1a642966 app: minor cleanup and commenting in gimp_scan_convert_render_full() 2012-05-02 17:45:55 +02:00
Michael Natterer 1a4ffb3d21 app: add gimp_scan_convert_add_bezier() which adds a GimpBezierDesc
Also remove unused member num_nodes.
2011-04-10 19:07:04 +02:00
Sven Neumann 7b5c3a8273 another tiny formatting change
svn path=/trunk/; revision=28140
2009-03-11 21:04:13 +00:00
Sven Neumann 54871b7ad0 formatting.
2009-03-11  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.c (gimp_scan_convert_render_full):
	formatting.


svn path=/trunk/; revision=28139
2009-03-11 20:56:07 +00:00
Michael Natterer 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
Sven Neumann 94dd20dadc bumped minimum required version of Cairo to 1.6.4.
2008-10-31  Sven Neumann  <sven@gimp.org>

	* configure.in: bumped minimum required version of Cairo to 
1.6.4.

	* app/core/gimpscanconvert.c: use 
cairo_format_stride_for_width().


svn path=/trunk/; revision=27488
2008-10-31 07:20:07 +00:00
Sven Neumann 15033a594b app/core/gimpscanconvert.c app/vectors/gimpbezierstroke.c
2008-07-11  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.c
	* app/vectors/gimpbezierstroke.c

	* app/vectors/gimpvectors.c: include <cairo.h> instead of
	<cairo/cairo.h>.


svn path=/trunk/; revision=26121
2008-07-11 10:37:58 +00:00
Martin Nordholts 54884aea92 constify the points argument.
2008-05-21  Martin Nordholts  <martinn@svn.gnome.org>

	* app/core/gimpscanconvert.c (gimp_scan_convert_add_polyline):
	constify the points argument.

svn path=/trunk/; revision=25739
2008-05-21 19:11:42 +00:00
Simon Budig 168935ec10 expose the internal most flexible rendering function. Make use of the
2008-05-09  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.[ch]: expose the internal most
	flexible rendering function. Make use of the miter limit
	again.


svn path=/trunk/; revision=25597
2008-05-09 11:56:58 +00:00
Simon Budig f65cb91356 kind of resurrect the blending modes, although now implemented as
2008-05-09  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.[ch]: kind of resurrect the
	blending modes, although now implemented as compositing
	on top of the existing content of a mask.

	* app/tools/gimpforegroundselecttool.c: changed accordingly


svn path=/trunk/; revision=25595
2008-05-09 11:18:44 +00:00
Simon Budig c42cd9449b resurrect dashed strokes.
2008-05-09  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.c: resurrect dashed strokes.


svn path=/trunk/; revision=25594
2008-05-09 09:10:22 +00:00
Sven Neumann 33b4a5fa51 check for a minimum required cairo version (1.4.14).
2008-05-09  Sven Neumann  <sven@gimp.org>

	* configure.in: check for a minimum required cairo version 
(1.4.14).

	* app/core/gimpscanconvert.c: copied some code from cairo until
	we depend on cairo 1.6.


svn path=/trunk/; revision=25593
2008-05-09 08:05:01 +00:00
Simon Budig 5426c0c10e removed Libart usage, replaced with Cairo. Dashed strokes do not yet work
2008-05-09  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.[ch]: removed Libart usage,
	  replaced with Cairo. Dashed strokes do not yet work again, will
	  happen tomorrow. Also the blending modes need a second look at.

	  Also removed deprecated API which made it unnecessarily complicated.

	* app/tools/gimpiscissorstool.c: use the current API.

	* app/core/Makefile.am
	* app/Makefile.am
	* configure.in: removed libart dependency, added cairo dependency
	  where necessary.


svn path=/trunk/; revision=25591
2008-05-08 23:35:53 +00:00
Sven Neumann a6d783152d app/core/gimp-user-install.c app/core/gimpgradient-load.c
2007-05-23  Sven Neumann  <sven@gimp.org>

	* app/core/gimp-user-install.c
	* app/core/gimpgradient-load.c
	* app/core/gimpsamplepoint.c
	* app/core/gimpscanconvert.c
	* app/core/gimpunit.c
	* app/display/gimpdisplayshell-filter-dialog.c
	* app/display/gimpdisplayshell-layer-select.c
	* app/display/gimpdisplayshell-scale.c
	* app/file/gimprecentitem.c
	* app/gui/splash.c: allocate structs using GSlice.

svn path=/trunk/; revision=22590
2007-05-23 10:22:09 +00:00
Sven Neumann 41237259c9 In all files, changed the standard copyright notice to say "GIMP - The GNU
2006-12-09  Sven Neumann  <sven@gimp.org>

        * In all files, changed the standard copyright notice to say
        "GIMP - The GNU Image Manipulation Program".
2006-12-09 21:33:38 +00:00
Sven Neumann d34ff5537d libgimpbase/Makefile.am libgimpbase/gimpbase.h added new files that hold
2006-08-29  Sven Neumann  <sven@gimp.org>

	* libgimpbase/Makefile.am
	* libgimpbase/gimpbase.h
	* libgimpbase/gimprectangle.[ch]: added new files that hold
	gimp_rectangle_intersect(), factored out of the core.

	* libgimpbase/gimpbase.def: updated.

	* app/core/gimp-edit.c
	* app/core/gimp-utils.c
	* app/core/gimp-utils.h
	* app/core/gimpchannel-combine.c
	* app/core/gimpdrawable-foreground-extract.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage-preview.c
	* app/core/gimplayer.c
	* app/core/gimpscanconvert.c
	* app/display/gimpdisplayshell-draw.c: changed includes accordingly.

	* libgimp/gimpdrawablepreview.c: don't duplicate
	gimp_rectangle_intersect() here, use the function in libgimpbase.

	* app/base/siox.c: use gimp_rectangle_intersect() to reduce the
	working area to the region of interest. Fixes bug #340422.
2006-08-29 14:46:32 +00:00
Sven Neumann dc8bdb4fa1 app/base/siox.[ch] fixed API docs.
2005-08-25  Sven Neumann  <sven@gimp.org>

	* app/base/siox.[ch]
	* app/core/gimpscanconvert.c: fixed API docs.

2005-08-25  Sven Neumann  <sven@gimp.org>

	* app/app-sections.txt
	* app/app.types: minor updates.

	* libgimpbase/tmpl/gimputils.sgml: regenerated.
2005-08-25 16:52:46 +00:00
Sven Neumann eab00f1d80 converted comments to gtk-doc inline API docs.
2005-08-22  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.[ch]: converted comments to gtk-doc
	inline API docs.
2005-08-22 16:08:08 +00:00
Sven Neumann da9eb037c7 define G_DISABLE_DEPRECATED unless glib >= 2.9.0.
2005-08-16  Sven Neumann  <sven@gimp.org>

	* configure.in: define G_DISABLE_DEPRECATED unless glib >= 2.9.0.

	* app/core/gimpscanconvert.c: added missing include.

	* app/text/gimp-fonts.c
	* libgimp/gimp.c
	* libgimpwidgets/gimpcolornotebook.c
	* plug-ins/helpbrowser/dialog.c: fixed signedness warnings.

	* plug-ins/bmp/bmpread.c (ReadBMP): initialize variable.
2005-08-16 00:48:20 +00:00
Sven Neumann 5c6b8e9f79 added the possibility to specify a clip rectangle.
2005-08-08  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.[ch]: added the possibility to specify
	a clip rectangle.

	* app/base/siox.c (find_max_blob): use g_try_malloc().
2005-08-08 12:05:54 +00:00
Sven Neumann 68f09c7cb6 added gimp_scan_convert_compose(), an alternative to
2005-08-06  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.[ch]: added gimp_scan_convert_compose(),
	an alternative to gimp_scan_convert_render() that allows to compose
	strokes on a drawable.

	* app/tools/gimpforegroundselecttool.c: use the new function to
	get rid of temporary channels for applying the strokes. Also fixed
	calculation of stroke width from display scale.
2005-08-06 14:54:13 +00:00
Sven Neumann 7e3d7ede18 pass 255 as value to gimp_scan_convert_render_internal().
2005-07-31  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.c (gimp_scan_convert_render): pass 255
	as value to gimp_scan_convert_render_internal().

	* app/tools/gimpforegroundselecttool.[ch]: add paint strokes as
	foreground color; draw function is missing.
2005-07-31 14:27:46 +00:00
Sven Neumann e96a77ecb3 fixed some minor coding style issues.
2005-07-31  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.c: fixed some minor coding style issues.
2005-07-31 11:53:32 +00:00
Sven Neumann a5abd45337 added gimp_scan_convert_render_value(), a variant of
2005-07-29  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.[ch]: added
	gimp_scan_convert_render_value(), a variant of
	gimp_scan_convert_render() that allows to pass the foreground value.

	* app/tools/gimpfreeselecttool.[ch]: added a virtual "select" method.

	* app/tools/Makefile.am
	* app/tools/gimp-tools.c
	* app/tools/gimpforegroundselecttool.[ch]: added a rough first
	version of foreground selection tool based on the SIOX algorithm.
	Work in progress...

	* app/widgets/gimphelp-ids.h: added help-id for the new tool.
2005-07-29 01:48:56 +00:00
Sven Neumann 29b455c901 replaced a bitshift with a binary and. Should be unnoticeably faster ;)
2004-09-16  Sven Neumann  <sven@gimp.org>

	* app/core/gimpscanconvert.c (VALUE_TO_PIXEL): replaced a bitshift
	with a binary and. Should be unnoticeably faster ;)
2004-09-16 11:31:30 +00:00
Simon Budig 34d51a6382 Implemented an own rendering callback for libart and use it instead of
2004-09-16  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.c: Implemented an own rendering
	callback for libart and use it instead of art_gray_svp_aa().
	This now handles non-antialiased scan conversions itself. It
	also basically shows the way to implement a LUT for the
	scan conversion.
2004-09-16 00:46:02 +00:00
Simon Budig 857d114ace Argh, this is getting silly.
2004-01-28  Simon Budig  <simon@gimp.org>

	Argh, this is getting silly.

	* app/core/gimpscanconvert.c: Fix dumb bug I introduced
	while fixing bug #132036. Instead of always closing a
	polyline to the first point of the vpath close to the
	first point of the current polyline

	I'll close #132036 for the third time now, feel free to
	reopen it when bugs appear...
2004-01-27 23:38:03 +00:00
Simon Budig fcc88b292e use the modern libart way to uncross/rewind a libart SVP. This time really
2004-01-26  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.c: use the modern libart way
	to uncross/rewind a libart SVP. This time really fixes
	bug #132036 (please test it though...).
2004-01-26 21:19:17 +00:00
Simon Budig 6861a68130 removed the call to art_vpath_perturb, since it apparently is responsible
2004-01-21  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.c: removed the call to
	art_vpath_perturb, since it apparently is responsible for the
	artefacts described in bug #132036. I don't really understand
	why these artefacts were happening in the first place, because
	in theory art_vpath_perturb should not do any harm.

	Also properly close closed polygons.

	Hopefully fixes #132036, please test this.
2004-01-21 01:29:00 +00:00