Commit Graph

30 Commits

Author SHA1 Message Date
Michael Natterer 5f700549e7 Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +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 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 f67bcfa82b app: port the entire GimpScanConvert API to GeglBuffer 2012-05-02 17:46:04 +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
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
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 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 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 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 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 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
Michael Natterer da2bd8b91a added GimpScanConvert typedef.
2003-10-09  Michael Natterer  <mitch@gimp.org>

	* app/core/core-types.h: added GimpScanConvert typedef.

	* app/core/gimpscanconvert.h: removed it here.

	* app/core/gimpchannel-select.[ch]: factored out new
	function gimp_channel_select_scan_convert().

	(gimp_channel_select_polygon)
	(gimp_channel_select_vectors): use it.

	(gimp_channel_select_alpha): when called on a layer without alpha,
	don't fail but fake the effect of a fully opaque alpha channel.

	* app/tools/gimpiscissorstool.c: some cleanup.

	(iscissors_convert): fixed my latest cleanup (don't cast the
	tool to a GimpGrawable ;). Don't ignore options->antialias.
2003-10-09 11:30:49 +00:00
Michael Natterer d734595991 create a channel which the size of the layer, not of the image...
2003-10-06  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpchannel.c (gimp_channel_new_from_alpha): create
	a channel which the size of the layer, not of the image...

	* app/core/gimpchannel-select.c (gimp_channel_select_alpha):
	...and take the layer's offsets into account.

	* app/core/gimpscanconvert.[ch] (gimp_scan_convert_render): added
	off_x and off_y parameters and don't use the passed TileManager's
	offsets.

	* app/core/gimpchannel-select.c
	* app/core/gimpdrawable-stroke.c
	* app/tools/gimpiscissorstool.c: changed accordingly.
2003-10-06 16:43:05 +00:00
Michael Natterer 657b49b402 removed "width", "height" and "antialias" from the GimpScanConvert struct
2003-09-30  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpscanconvert.[ch]: removed "width", "height" and
	"antialias" from the GimpScanConvert struct and from
	gimp_scan_convert_new(). Removed gimp_scan_convert_to_channel().
	Added "gboolean antialias" to gimp_scan_convert_render().
	Some general cleanup.

	* app/core/gimpdrawable-stroke.c
	* app/core/gimpimage-mask-select.c
	* app/tools/gimpiscissorstool.c: changed accordingly.

	* app/core/gimpdrawable-stroke.c: renamed
	gimp_drawable_stroke_scanconvert_stroke() to
	gimp_drawable_stroke_scan_convert() and removed the "gboolean
	use_mask_bounds" parameter since we can't decide if it's the
	selection's boundary which is stroked. Instead use
	gimp_channel_is_empty() on the selection which will return FALSE
	while the selection is being stroked.

	* app/paint/gimppaintcore-stroke.c: cleanup.

	(gimp_paint_core_stroke_boundary): don't use "gint i" twice.

	(gimp_paint_core_stroke_vectors): no need to manually close a
	closed stroke.
2003-09-30 18:06:19 +00:00
Simon Budig fba6a1a77a replaced gimp_scan_convert_set_resolution with
2003-09-30  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.[ch]: replaced
	gimp_scan_convert_set_resolution with
	gimp_scan_convert_set_pixel_ratio where you specify the pixel
	ratio (width/height). Also made the stroke-width consistent
	with other places in the gimp by using the Y-Resolution as
	the base for the calculations.

	* app/core/gimpdrawable-stroke.c: changed accordingly.
2003-09-30 01:03:25 +00:00
Simon Budig 3761462869 Added support for setting X- and Y-resolution for stroking paths. The
2003-09-30  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.[ch]: Added support for setting
	X- and Y-resolution for stroking paths. The width of a path
	has to be given in pixels, using X-resolution.

	* app/core/gimpstrokeoptions.[ch]: Added "resolution" property,
	so that conversion between various width-units can happen.
	Should be set to the target images X-resolution.

	* app/gui/stroke-dialog.c: set the resolution of the options.

	* app/core/gimpdrawable-stroke.c: Use that stuff, cleanup.
2003-09-29 23:45:06 +00:00
Simon Budig 3f76868aee This still is very much in progress. I just want to commit this to avoid
2003-09-27  Simon Budig  <simon@gimp.org>

	This still is very much in progress. I just want to commit this
	to avoid lossage. It kind of works but there definitely is
	code in the wrong place now.

	* app/gui/stroke-dialog.[ch]: New files implementing a dialog
	containing Svens GimpStrokeEditor-Widget.

	* app/gui/Makefile.am: changed accordingly.

	* app/gui/vectors-commands.c: Open the StrokeOptions-Dialog when
	the "stroke" menu entry gets selected.

	* app/vectors/gimpvectors.c: Remove bad #ifdef hacks and use
	Libart/Paintcore-Stroking depending on the type of the stroke_desc
	Parameter.

	* app/core/gimpstrokeoptions.c: Proper handle the Enum-Properties.

	* app/core/gimpscanconvert.[ch]: make the antialias-parameter
	to gimp_scan_convert_new a gboolean.

	* app/tools/gimpiscissorstool.c
	* app/core/gimpdrawable-stroke.c
	* app/core/gimpimage-mask-select.c: Changed accordingly.
2003-09-27 02:34:18 +00:00
Simon Budig 8172df9a15 Add some parameters to gimp_scan_convert_stroke () to expose the
2003-09-26  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.[ch]: Add some parameters to
	gimp_scan_convert_stroke () to expose the Miter-Setting
	and enable dashing of vectors.

	* app/core/gimpdrawable-stroke.c: Use the dashing feature.

	* app/vectors/gimpvectors.c: Expose a bad hack (opacity
	controls the libart-stroke width) in a #define. Default
	is not enabled.
2003-09-26 00:41:10 +00:00
Sven Neumann 3ee7c4d0e0 renamed new enums to use "style" instead of the overloaded term "type".
2003-09-21  Sven Neumann  <sven@gimp.org>

	* app/core/core-enums.[ch]: renamed new enums to use "style" instead
	of the overloaded term "type". Also renamed GimpGridType while I was
	on it.

	* app/core/gimpdrawable-stroke.[ch]
	* app/core/gimpgrid.[ch]
	* app/core/gimpscanconvert.[ch]
	* app/display/gimpdisplayshell.c
	* app/vectors/gimpvectors.c
	* app/gui/grid-dialog.c: changed accordingly.
2003-09-21 10:45:19 +00:00
Simon Budig ca07f5ddb2 Dave Neary <bolsh@gimp.org>
2003-09-20  Simon Budig  <simon@gimp.org>
            Dave Neary  <bolsh@gimp.org>

	First steps towards Libart stroking. Right now the code
	crashes and thus is disabled by default. If you want to
	test it, change the #define LIBART_STROKE  in
	app/vectors/gimpvectors.c. Then a click on the stroke button
	in the paths dialog invokes the new code.
	The crash is in gimpdrawable-stroke.c - apparently I did not
	yet get the TileManager stuff correctly.

	* app/core/gimpscanconvert.[ch]: Rewritten to be more clear
	and have an easier API. Now can handle open Paths and
	libart-stroke the (open/closed) polygons defined earlier.

	* app/core/core-enums.h: Added Enums for LineJoin-Type and
	EndCap-Type for stroking.

	* app/core/core-enums.c: regenerated.

	* app/core/gimpimage-mask-select.c: Use the new API of
	GimpScanConvert where appropriate.

	* app/vectors/gimpvectors.c: Added #define to enable the libart
	stroking. Disabled by default because of the crash mentioned
	above...

	* app/vectors/gimpbezierstroke.c
	* app/vectors/gimpstroke.c
	* app/vectors/gimpvectors.[ch]: Removed Libart stuff here.
	Libart usage now lives exclusively in GimpScanConvert.

	* app/core/gimpdrawable-stroke.[ch]: New files for the libart
	stroking (right now just vector objects).
	* app/core/Makefile.am: changed accordingly.

	* app/Makefile.am: Needed to tweak linking.  :-/
2003-09-20 19:58:26 +00:00
Simon Budig c6aa6a9efa Extended to be able to handle multiple polygons in a sane way.
2003-05-21  Simon Budig  <simon@gimp.org>

	* app/core/gimpscanconvert.[ch]: Extended to be able to handle
	multiple polygons in a sane way.

	* app/core/gimpimage-mask-select.c: Use this to convert
	multiple-stroke vectors objects to selections. Libart rocks!

	* app/tools/gimpiscissorstool.c: Changed accordingly.
2003-05-21 01:01:09 +00:00
Michael Natterer ca6ee05ea3 app/Makefile.am removed.
2001-05-25  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/scan_convert.[ch]: removed.

	* app/core/Makefile.am
	* app/core/gimpscanconvert.[ch]: added. Changed all function names
	and use GimpVector2 instead of ScanConvertPoint.

	* app/base/base-types.h: removed ScanConvertPoint (didn't belong
	here anyway).

	* app/pdb/tools_cmds.c
	* app/tools/gimpfreeselecttool.[ch]
	* app/tools/gimpiscissorstool.c
	* tools/pdbgen/pdb/tools.pdb: changed accordingly.
2001-05-25 18:10:38 +00:00
Michael Natterer 227eea67cb app/Makefile.am new file.
2001-01-29  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/undo_history.h: new file.

	* app/apptypes.h: removed the "Channel" typedef.

	* app/channel.[ch]: renamed all functions to gimp_channel_*()

	* app/channel_ops.c
	* app/channels_dialog.c
	* app/commands.c
	* app/disp_callbacks.c
	* app/gdisplay.c
	* app/gimage_mask.[ch]
	* app/gimpdnd.c
	* app/gimphistogram.c
	* app/gimpimage.[ch]
	* app/global_edit.c
	* app/layer.c
	* app/layers_dialog.c
	* app/qmask.c
	* app/scan_convert.c
	* app/scan_convert.h
	* app/toolbox.c
	* app/undo.[ch]
	* app/undo_history.c
	* app/xcf.[ch]
	* app/pdb/channel_cmds.c
	* app/pdb/color_cmds.c
	* app/pdb/drawable_cmds.c
	* app/pdb/image_cmds.c
	* app/pdb/pdb_glue.h
	* app/pdb/selection_cmds.c
	* app/pdb/tools_cmds.c
	* app/tools/bezier_select.c
	* app/tools/bezier_selectP.h
	* app/tools/blend.c
	* app/tools/bucket_fill.c
	* app/tools/by_color_select.c
	* app/tools/crop.c
	* app/tools/ellipse_select.c
	* app/tools/free_select.c
	* app/tools/fuzzy_select.c
	* app/tools/fuzzy_select.h
	* app/tools/iscissors.c
	* app/tools/rect_select.c
	* app/tools/text_tool.c
	* app/tools/transform_core.c
	* tools/pdbgen/pdb.pl
	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/tools.pdb: changed accordingly.
2001-01-29 02:45:02 +00:00
Michael Natterer 8d6c335f8f app/Makefile.am app/channel_pvt.h app/drawable_pvt.h app/gdisplayF.h
2000-12-29  Michael Natterer  <mitch@gimp.org>

	* app/Makefile.am
	* app/channel_pvt.h
	* app/drawable_pvt.h
	* app/gdisplayF.h
	* app/gimpdrawableP.h
	* app/gimpimageP.h
	* app/layer_pvt.h
	* app/toolsF.h: removed these files.

	* app/apptypes.h
	* tools/pdbgen/enums.pl: added tons of opaque typedefs and enums.

	* tools/pdbgen/pdb/brush_select.pdb
	* tools/pdbgen/pdb/brushes.pdb
	* tools/pdbgen/pdb/channel.pdb
	* tools/pdbgen/pdb/color.pdb
	* tools/pdbgen/pdb/convert.pdb
	* tools/pdbgen/pdb/display.pdb
	* tools/pdbgen/pdb/drawable.pdb
	* tools/pdbgen/pdb/fileops.pdb
	* tools/pdbgen/pdb/gradient_select.pdb
	* tools/pdbgen/pdb/gradients.pdb
	* tools/pdbgen/pdb/help.pdb
	* tools/pdbgen/pdb/image.pdb
	* tools/pdbgen/pdb/layer.pdb
	* tools/pdbgen/pdb/pattern_select.pdb
	* tools/pdbgen/pdb/patterns.pdb
	* tools/pdbgen/pdb/selection.pdb
	* tools/pdbgen/pdb/tools.pdb
	* app/*: chainsaw #include cleanup:

	- Never (never!!) include stuff in header files except where we
	  need access to structures' contents (like derived objects).
	- Added prototypes and proper formating in many files.
	- The #include order in *all* *.c files is as follows:

	#include "config.h"

	#include <system stuff>

	#include <gtk/gtk.h>

	#include "apptypes.h"

	#include "gimp stuff"

	#include "libgimp stuff"

	#include "libgimp/gimpintl.h"

	By following this scheme we can easily see a file's dependencies
	from it's #include's and can grep for the inclusion to find out
	where a file is used.

	* tools/pdbgen/app.pl: changed to follow the include scheme above.

	* libgimp/Makefile.am
	* libgimp/gimpuitypes.h: new file, included from libgimp/gimpui.h
	and from app/apptypes.h.

	* libgimp/gimpcolorbutton.[ch]
	* libgimp/gimpdialog.[ch]
	* libgimp/gimphelpui.[ch]
	* libgimp/gimpparasite.[ch]
	* libgimp/gimppatheditor.[ch]
	* libgimp/gimpprotocol.c
	* libgimp/gimpquerybox.[ch]
	* libgimp/gimpsizeentry.[ch]
	* libgimp/gimptypes.h
	* libgimp/gimpui.h
	* libgimp/gimpunit.h
	* libgimp/gimpunitmenu.[ch]
	* libgimp/gimpwidgets.[ch]: changed accordingly.

	* plug-ins/FractalExplorer/Dialogs.c
	* plug-ins/gdyntext/message_window.c
	* plug-ins/imagemap/imap_default_dialog.c
	* plug-ins/imagemap/imap_file.c: these files used to include
	"libgimp/gimpui.h" without including "libgimp/gimp.h". This is
	no longer possible because the libgimpui headers don't inlcude
	"libgimp/gimpunit.h" any more.
2000-12-29 15:22:01 +00:00
Sven Neumann dfa2bed505 Last-minute cleanup:
2000-12-16  Sven Neumann  <sven@gimp.org>

	Last-minute cleanup:

	* app/gimpdrawableF.h
	* app/gimphistogramF.h
	* app/gimpimageF.h
	* app/gimplistF.h
	* app/gimplutF.h
	* app/gimpobjectF.h
	* app/gimpsetF.h
	* app/layerF.h
	* app/parasitelistF.h: removed these files

	* app/Makefile.am
	* tools/pdbgen/Makefile.am: changed accordingly

	* app/[almost every file]: include cleanup
2000-12-16 21:37:03 +00:00
EDT 1999 Austin Donnelly 48c54f0f5a NEW FILES: app/scan_convert.c common code from free_select.c and
Mon Oct  4 01:46:46 EDT 1999  Austin Donnelly  <austin@gimp.org>

	NEW FILES:
	* app/scan_convert.c
	* app/scan_convert.h: common code from free_select.c and
	    bezier_select.c

	MODIFIED FILES:
	* app/disp_callbacks.c: Fix for bug #2517 - dragging colour swatch
	    to image with no layers causes segfault.  Something is
	    repainting empty images as white rather than chequerboard as
	    well, which still needs fixing.

	* app/free_select.c: move code out to scan_convert.c
	* app/free_select.h: use ScanConvertPoint not FreeSelectPoint
	* tools/pdbgen/pdb/tools.pdb: ScanConvertPoint again
	* app/tools_cmds.c: generated version of above.
1999-10-04 05:51:40 +00:00