Commit Graph

38 Commits

Author SHA1 Message Date
Martin Nordholts e3d9198cc4 Made brushes upscalable by using scale_region. Downscaling still uses
2007-03-14  Martin Nordholts  <martinn@svn.gnome.org>

	Made brushes upscalable by using scale_region. Downscaling still
	uses functions in app/base/brush-scale.c (because of better
	performance). Parametric brushes of course recalculates masks
	instead of using bitmap scaling. Fixes bug #65030.

	* app/core/gimpbrush.[ch]: Added a private scale_buf method which
	uses scale_region (with GIMP_INTERPOLATION_LINEAR) to scale its
	masks and pixmaps. Also added public virtual method scale_size to
	GimpBrush (overridden by GimpBrushGenerated) which calculates the
	buffer sizes for a given brush scaled with a given scale.

	* app/core/gimpbrushgenerated.c: Implemented the new scale_size
	method inherited from GimpBrush, and modified
	gimp_brush_generated_calc to use this helper function.

	* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): Made
	the brush Scale-slider logarithmic.

	* app/paint/gimppaintoptions.c (gimp_paint_options_class_init):
	Changed Scale scale to [0.0, 10.0].

	* app/paint/gimpbrushcore.c:
	(gimp_brush_core_calc_brush_size): Refactored 'get brush size' code
	to where it belongs, in GimpBrush-classes, and allowed scales
	larger than 1.0.


svn path=/trunk/; revision=22113
2007-03-14 00:18:01 +00:00
Michael Natterer 4648f542cf app/core/gimpbrush.[ch] app/core/gimpbrushgenerated.c
2007-03-12  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpbrush.[ch]
	* app/core/gimpbrushgenerated.c
	* app/tools/gimppaintoptions-gui.c
	* app/base/brush-scale.[ch]
	* app/base/temp-buf.[ch]
	* app/paint/gimppaintoptions.c
	* app/paint/gimpbrushcore.c: revert last commit. The patch needs
	more review and it's easier to start from quare one than have
	patches on top of patches.


svn path=/trunk/; revision=22101
2007-03-12 09:33:57 +00:00
Michael Schumacher a4e81c3a6c Made brushes scalable (both up and down) by using existing scaling
2007-03-11  Michael Schumacher  <schumaml@cvs.gnome.org>

	Made brushes scalable (both up and down) by using existing
	scaling routines, and also refactored some brush-code. Patch by
	Martin Nordholts. Fixes bug #65030.

	* app/paint/gimpbrushcore.c:
	(gimp_brush_core_calc_brush_length_scale) Refactored 'get brush
	size' code to where it belongs, in GimpBrush-classes, and renamed
	gimp_brush_core_calc_brush_size to
	gimp_brush_core_calc_brush_length_scale.

	* app/paint/gimppaintoptions.c (gimp_paint_options_class_init):
	Changed Scale scale to [0.0, 100.0].

	* app/base/temp-buf.[ch] (mask_buf_new): Change signature to also
	take a bpp parameter.

	* app/base/brush-scale.[ch]: Changed brush_scale_(mask|pixmap) to
	the new brush_scale_buf, which uses existing scaling routines
	(scale_region) instead of dedicated down-scaling only routines.

	* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): Made
	the brush Scale-slider logarithmic.

	* app/core/gimpbrushgenerated.c: Implemented the new
	get_scaled_size method inherited from GimpBrush, and modified
	gimp_brush_generated_calc to use this helper function.

	* app/core/gimpbrush.[ch]: Added public virtual method
	get_scaled_size to GimpBrush, overridden by GimpBrushGenerated,
	which calculates the buffer sizes for a given brush scaled with a
	given scale. Also changed calls to brush_scale_(mask|pixmap) to
	the new brush_scale_buf.

svn path=/trunk/; revision=22099
2007-03-11 16:28:08 +00:00
Michael Natterer 83d3a750d4 include "libgimpmath/gimpmathtypes.h" instead of "libgimpmath/gimpmath.h".
2007-03-09  Michael Natterer  <mitch@gimp.org>

	* app/core/core-types.h: include "libgimpmath/gimpmathtypes.h"
	instead of "libgimpmath/gimpmath.h".

	* app/core/gimpbrush.h
	* app/paint/gimppaintcore.h
	* app/paint/gimpperspectiveclone.h
	* app/text/gimptext.h
	* app/tools/gimptransformtool.h: include gimpvector.h and
	gimpmatrix.h explicitely where they are needed in public structs.

	* app/*/*.c
	* tools/pdbgen/pdb/paths.pdb: include "libgimpmath/gimpmath.h"
	where needed.

	* app/pdb/paths_cmds.c: regenerated.


svn path=/trunk/; revision=22084
2007-03-09 13:00:01 +00:00
Sven Neumann 2e3bd47b6f applied patch from Aurore D that improves jitter for brushes with an angle
2006-12-18  Sven Neumann  <sven@gimp.org>

	* app/paint/gimpbrushcore.c (gimp_brush_core_interpolate): applied
	patch from Aurore D that improves jitter for brushes with an angle
	close to 90° (bug #386061).
2006-12-18 10:47:39 +00:00
Michael Natterer c6ef9aa1fe also scale the brush's spacing (by scaling its x_axis and y_axis).
2006-12-10  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpbrushcore.c: also scale the brush's spacing (by
	scaling its x_axis and y_axis). Addresses bug #65030.
2006-12-09 23:46:16 +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
Michael Natterer 3b903bae0c applied modified patch from Adrian Likins which adds a GRand to the
2006-11-22  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpbrushcore.[ch]: applied modified patch from Adrian
	Likins which adds a GRand to the GimpBrushCore struct and uses it
	instead of using g_random_foo() functions. Fixes bug #377981.
2006-11-22 20:22:32 +00:00
Michael Natterer 6eb7089577 Made all brushes scalable from the tool options. So far only downscaling
2006-11-16  Michael Natterer  <mitch@gimp.org>

	Made all brushes scalable from the tool options. So far only
	downscaling is supported since we lack an algorithm for bitmap
	brush upscaling. Addresses bug #65030.

	* app/paint/gimppaintoptions.[ch]: added "brush-scale" property.

	* app/paint/gimpbrushcore.[ch]: separate pressure logic from brush
	scaling logic and take paint_options->brush_scale into account.
	Added gimp_brush_core_create_bound_segs() which returns BoundSegs
	of the correctly scaled brush mask for the brush preview on the
	canvas.

	* app/tools/gimpbrushtool.c: use gimp_brush_core_create_bound_segs()
	instead of doing this here (also removes all knowledge about lowlevel
	stuff from this file). Connect to notify::brush-scale of the
	paint options and invalidate the brush core's brush accordingly.

	* app/tools/gimppaintoptions-gui.c: added brush scale slider.
2006-11-16 15:11:27 +00:00
Michael Natterer 1186dfd256 Properly abstract brush scaling:
2006-11-09  Michael Natterer  <mitch@gimp.org>

	Properly abstract brush scaling:

	* app/core/gimpbrush.[ch]: added virtual functions
	GimpBrush::scale_mask() and ::scale_pixmap() and default
	implementations which call the functions in base/brush-scale.c.

	* app/core/gimpbrushgenerated.c: factored out brush calculation to
	an internal utility function and call that function from ::dirty()
	and from the new ::scale_mask().

	* app/core/gimpbrushcore.c: use gimp_brush_scale_mask/pixmap()
	instead of using the lowlevel scale functions directly. Fixes the
	uglyness that we were scaling generated brushes instead of simply
	recalculating them in the right size.
2006-11-09 14:54:49 +00:00
Michael Natterer dd6f5d711a changed GimpDrawable parameter to "GimpImageType dest_type".
2006-10-26  Michael Natterer  <mitch@gimp.org>

	* app/core/gimpimage.[ch]
	(gimp_image_transform_rgb)
	(gimp_image_transform_color)
	(gimp_image_transform_temp_buf): changed GimpDrawable parameter to
	"GimpImageType dest_type".

	(gimp_image_get_foreground)
	(gimp_image_get_background): ditto and reordered parameters.

	* app/core/gimp-edit.c
	* app/core/gimpdrawable-bucket-fill.c
	* app/core/gimpdrawable-stroke.c
	* app/core/gimpdrawable-transform.c
	* app/core/gimpdrawable.c
	* app/core/gimpimage-merge.c
	* app/core/gimplayer.c
	* app/core/gimpselection.c
	* app/paint/gimpbrushcore.c
	* app/paint/gimpclone.c
	* app/paint/gimperaser.c
	* app/paint/gimpheal.c
	* app/paint/gimpink.c
	* app/paint/gimppaintbrush.c: changed accordingly.

	* app/core/gimpdrawable-transform.c
	(gimp_drawable_transform_tiles_affine): set the progress to 1.0
	when done, some tiny cleanups around lanczos.
2006-10-25 22:14:36 +00:00
Michael Natterer 1b1299aff3 added GError** parameter to GimpPaintCore::start().
2006-09-26  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintcore.[ch]: added GError** parameter to
	GimpPaintCore::start().

	* app/tools/gimppainttool.c (button_press): display the error in
	the statusbar.

	* app/paint/gimppaintcore-stroke.c: pass a NULL error, effectively
	swallowing mssages. Will fix that later.

	* app/paint/gimpbrushcore.c
	* app/paint/gimpclone.c
	* app/paint/gimpsourcecore.c: changed accordingly. Set the error
	instead of calling g_message().

	* app/paint/gimpheal.c
	* app/paint/gimpperspectiveclone.c: implement start() and bail out
	early on indexed drawables instead of showing a g_message() in
	other functions that are called later.

	* app/tools/gimptool.[ch]: added GError** to GimpTool::initialize().

	* app/tools/gimptool.c (gimp_tool_initialize): display the error
	in the statusbar. Keep the external API GError-free.

	* app/tools/gimprectangletool.[ch]: added GError** to
	gimp_rectangle_tool_initialize().

	* app/tools/gimpbrightnesscontrasttool.c
	* app/tools/gimpcolorbalancetool.c
	* app/tools/gimpcolorizetool.c
	* app/tools/gimpcroptool.c
	* app/tools/gimpcurvestool.c
	* app/tools/gimphuesaturationtool.c
	* app/tools/gimpimagemaptool.c
	* app/tools/gimplevelstool.c
	* app/tools/gimpperspectiveclonetool.c
	* app/tools/gimpposterizetool.c
	* app/tools/gimpthresholdtool.c
	* app/tools/gimptransformtool.c: changed accordingly. Set the
	errors in initialize() instead of using gimp_message().

	* app/tools/gimpblendtool.c: implement initialize() and bail out
	early on indexed images instead of showing a gimp_message() in
	button_press().
2006-09-26 20:55:40 +00:00
Michael Natterer 9a85ba5b3a minor cleanup.
2006-08-30  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpbrushcore.c: minor cleanup.
2006-08-29 20:19:28 +00:00
William Skaggs 33d41964a9 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/paint/gimpbrushcore.c (gimp_brush_core_color_area_with_pixmap):
	kludge to adjust offset for even-dimensioned brushes;
	fixes bug #166622.
2006-08-15 17:21:18 +00:00
Sven Neumann 6ebcf700d1 removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15  Sven Neumann  <sven@gimp.org>

	* app/*/*.c:
	* lib*/*.c: removed erroneous semicolon after G_DEFINE_TYPE macros.
2006-05-15 09:46:31 +00:00
Sven Neumann 049872b361 app/*.[ch] converted tabs to spaces.
2006-04-12  Sven Neumann  <sven@gimp.org>

	* app/*.[ch]
	* app/*/*.[ch]: converted tabs to spaces.
2006-04-12 12:49:29 +00:00
Michael Natterer 684fe95ce3 use G_DEFINE_TYPE().
2005-12-07  Michael Natterer  <mitch@gimp.org>

	* app/paint/*: use G_DEFINE_TYPE().
2005-12-07 21:11:53 +00:00
Michael Natterer 6cdf44d62f set core->jitter here for all brush-based paint tools.
2005-10-04  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpbrushcore.c (gimp_brush_core_start): set
	core->jitter here for all brush-based paint tools.

	(gimp_brush_core_interpolate): cleanup.

	* app/paint/gimpbrushcore.h: removed trailing whitespace.

	* app/paint/gimpclone.c (gimp_clone_motion)
	* app/paint/gimppaintbrush.c (_gimp_paintbrush_motion): removed
	jitter stuff here.
2005-10-04 20:16:52 +00:00
William Skaggs d452942483 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* gimp/app/paint/gimpbrushcore.c
	* gimp/app/paint/gimpbrushcore.h
	* gimp/app/paint/gimpclone.c
	* gimp/app/paint/gimppaintbrush.c
	* gimp/app/paint/gimppaintoptions.c
	* gimp/app/paint/gimppaintoptions.h
	* gimp/app/tools/gimppaintoptions-gui.c: Apply patch from
	Adrian Likins to add "jitter" to paint tools (bug #163049),
	with small fixes for coding style and default jitter set
	to 0.2 instead of 0.0.
2005-10-03 19:03:14 +00:00
Michael Natterer 09454fb2a4 some general cleanup.
2005-09-03  Michael Natterer  <mitch@gimp.org>

	* app/base/pixel-region.[ch]: some general cleanup.

	(pixel_region_init_temp_buf)
	(pixel_region_init_data): new functions which initialize pixel
	regions on TempBufs and on raw contiguous arrays of pixel data.

	(pixel_region_configure): fixed a bug that has probably been there
	forever: when processing contiguous (non-tiled) data, interpret
	the original x and y coordinates of the region as offsets into
	the data. Before this fix, the initial x and y were simply ignored
	(by using them in a broken way), thus always forcing the upper
	left corner of the region being the beginning of the passed data.

	Lots of code was working around this problem by setting the
	pixel_region's data pointer to the proper starting pixel of the
	region in the middle the buffer.

	* libgimp/gimppixelrgn.c: some general cleanup.

	(gimp_pixel_rgn_configure): same fix as above. Fortunately, nobody
	seems to know that libgimp pixel regions can be used on arrays of
	data, just as core ones. Only two plug-ins were using this
	feature, and they are antique and written by spencer and federico,
	respectively. They both don't use offsets into the buffers and are
	not affected by this change. It's highly unlikely that anybody out
	there knows/uses this feature, so it can IMHO be safely changed.

	* app/base/temp-buf.c
	* app/core/gimpbuffer.c
	* app/core/gimpdrawable-combine.c
	* app/core/gimpdrawable-preview.c
	* app/core/gimpimage-preview.c
	* app/core/gimplayer.c
	* app/paint/gimpbrushcore.c
	* app/paint/gimpclone.c
	* app/paint/gimpconvolve.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimppaintcore.c
	* app/paint/gimpsmudge.c
	* app/tools/gimpiscissorstool.c
	* app/tools/gimppainttool.c: use the pixel_region_init_foo()
	functions instead of initializing regions of TempBufs and raw data
	manually. Removed lots of workarounds for the broken offset
	handling. The changed places of code are much more readable now.
2005-09-03 17:16:58 +00:00
Sven Neumann 3ca90a182e Use the canonical form for signal names in lots of places (but by far not
2005-05-27  Sven Neumann  <sven@gimp.org>

	* (lots of files): Use the canonical form for signal names in lots
	of places (but by far not all).
2005-05-27 13:05:26 +00:00
Michael Natterer fcc856868f app/paint/gimpbrushcore.c app/paint/gimppaintoptions.[ch] renamed
2005-01-03  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpbrushcore.c
	* app/paint/gimppaintoptions.[ch]
	* app/tools/gimppaintoptions-gui.c: renamed "invsize" to
	"inverse-size" and reordered it to be after "size".
2005-01-03 12:08:56 +00:00
William Skaggs 7a3eee51f0 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/paint/gimpbrushcore.c
	* app/paint/gimppaintoptions.c
	* app/paint/gimppaintoptions.h
	* app/tools/gimppaintoptions-gui.c: reverted last change, and
	applied full patch from Dave Ahlswede in bug #149576.
2005-01-01 00:04:37 +00:00
William Skaggs b9a8adfdae Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/paint/gimpbrushcore.c: make previously committed change
	in pressure-size relationship apply only to airbrush, as
	intended.
2004-12-31 18:52:28 +00:00
Sven Neumann 515482fc20 fixed rounding so that all brush kernels are created with a constant sum
2004-12-31  Sven Neumann  <sven@gimp.org>

	* tools/kernelgen.c: fixed rounding so that all brush kernels are
	created with a constant sum of 256.

	* app/paint/gimpbrushcore-kernels.h: regenerated.

	* app/paint/gimpbrushcore.c (gimp_brush_core_subsample_mask): use
	the constant defined un app/paint/gimpbrushcore-kernels.h. Should
	give a tiny speedup.
2004-12-31 16:20:51 +00:00
William Skaggs b650df0c8e Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/paint/gimpbrushcore.c: invert dependence of brush size on pressure,
	using formula from Dave Ahlswede in bug #149576.
2004-12-31 15:43:58 +00:00
Sven Neumann 7544ed7605 reverted Bill's change since it is obviously not the right fix. Allocate
2004-12-28  Sven Neumann  <sven@gimp.org>

	* app/paint/gimpbrushcore.c (gimp_brush_core_subsample_mask):
	reverted Bill's change since it is obviously not the right fix.
	Allocate the array larger to avoid the crash. We need to
	investigate bug #161323 further.
2004-12-28 14:20:26 +00:00
William Skaggs 551b11f9b2 Bill Skaggs <weskaggs@primate.ucdavis.edu>
* app/paint/gimpbrushcore.c (gimp_brush_core_subsample_mask):
	don't set array outside its bounds.  Should fix bug #161323.
2004-12-27 19:46:17 +00:00
Michael Natterer 85c2b2dd4f removed enum GimpPaintCoreState.
2004-07-19  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintcore.h: removed enum GimpPaintCoreState.

	* app/paint/paint-enums.h: added enum GimpPaintState (with values
	that have a name space).

	* app/paint/gimppaintcore.[ch]
	* app/paint/gimpairbrush.c
	* app/paint/gimpbrushcore.c
	* app/paint/gimpclone.c
	* app/paint/gimpconvolve.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimperaser.c
	* app/paint/gimpink.c
	* app/paint/gimppaintbrush.c
	* app/paint/gimppaintcore-stroke.c
	* app/paint/gimpsmudge.c
	* app/tools/gimppainttool.c: changed accordingly.

	* app/tools/gimpinktool.c: removed unused #include.
2004-07-19 14:37:40 +00:00
Michael Natterer 7e52ed902a added signal "set-brush" which is G_SIGNAL_RUN_LAST so we can connect
2004-06-23  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpbrushcore.[ch]: added signal "set-brush" which is
	G_SIGNAL_RUN_LAST so we can connect before and after the default
	implementation. Moved the brush setting and outline invalidation
	stuff to its default implementation. Also remember the outline's
	width and height. Call gimp_brush_core_set_brush() from
	gimp_brush_core_invalidate_cache() so "set-brush" is emitted
	whenever a generated brush becomes dirty.

	* app/tools/gimppainttool.c (gimp_paint_tool_button_press): don't
	pause/resume but rather stop/start the draw_tool. Fixes straight
	line preview aretefacts.

	(gimp_paint_tool_oper_update): set the brush_core's brush before
	starting the draw_tool.

	(gimp_paint_tool_draw): never free the brush_core's cached brush
	outline because the brush_core does that by itself now.

	(gimp_paint_tool_set_brush)
	(gimp_paint_tool_set_brush_after): new callbacks which pause and
	resume the draw_tool. Fixes brush outline artefacts when modifying
	the current brush e.g. by using the mouse wheel.
2004-06-23 12:19:28 +00:00
Michael Natterer 3e2690832c added new virtual function GimpPaintCore::post_paint() and call it after
2004-06-14  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintcore.[ch]: added new virtual function
	GimpPaintCore::post_paint() and call it after calling
	GimpPaintCore::paint().

	* app/paint/gimpbrushcore.[ch]: renamed brush_core->grr_brush
	to brush_core->main_brush and reset brush_core->brush
	to brush_core->main_brush in GimpPaintCore::post_paint().

	* app/paint/gimpbrushcore.c
	* app/paint/gimppaintcore-stroke.c
	* app/tools/gimppainttool.c: removed all code which restores
	the brush_core's old brush after painting since post_paint()
	does this automatically now.

	* app/paint/gimpclone.[ch]: moved static variables to the
	GimpClone struct.
2004-06-14 12:52:33 +00:00
Philip Lafleur abcf984b66 avoided some redundant calculations.
2004-06-10  Philip Lafleur  <plafleur@cvs.gnome.org>

	* app/paint/gimpbrushcore.c (gimp_brush_core_pressurize_mask):
	avoided some redundant calculations.
2004-06-10 02:53:19 +00:00
Michael Natterer afb57d59bf app/paint/gimpbrushcore.c app/paint/gimpdodgeburn.c
2004-05-28  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimpbrushcore.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimppaintcore.[ch]
	* app/tools/gimpairbrushtool.c
	* app/tools/gimpclonetool.c
	* app/tools/gimpconvolvetool.c
	* app/tools/gimpdodgeburntool.c
	* app/tools/gimpinktool.c
	* app/tools/gimppaintbrushtool.c
	* app/tools/gimppenciltool.c
	* app/tools/gimpsmudgetool.c: code review / cleanup.
2004-05-28 09:34:13 +00:00
Michael Natterer 23cfde41ba removed enum GimpPaintCoreFlags and member GimpPaintCore::flags. Added
2004-05-27  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintcore.[ch]: removed enum GimpPaintCoreFlags
	and member GimpPaintCore::flags. Added "gboolean traces_on_window"
	to GimpPaintCoreClass (defaults to FALSE).

	* app/paint/gimpclone.c: set traces_on_window = TRUE.

	* app/paint/gimpbrushcore.[ch]: added
	"gboolean handles_changing_brush" to GimpBrushCoreClass (defaults
	to FALSE).

	* app/paint/gimpclone.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimperaser.c
	* app/paint/gimppaintbrush.c
	* app/paint/gimppaintcore.c: set handles_changing_brush = TRUE.

	* app/tools/gimppainttool.c: changed accordingly.
2004-05-27 20:48:49 +00:00
Michael Natterer b9d74b9aa4 added "guint32 time" parameters to GimpPaintCore::paint() and
2004-05-26  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintcore.[ch]: added "guint32 time" parameters
	to GimpPaintCore::paint() and ::interpolate().

	* app/paint/gimpairbrush.c
	* app/paint/gimpbrushcore.c
	* app/paint/gimpclone.c
	* app/paint/gimpconvolve.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimperaser.c
	* app/paint/gimppaintbrush.c
	* app/paint/gimpsmudge.c: changed accordingly.

	* app/paint/gimpink.c: ditto and use the passed time instead of
	hardcoded dummy values.

	* app/paint/gimppaintcore-stroke.c: pass '0' as time.

	* app/tools/gimppainttool.c: pass the GdkEvent time.
2004-05-26 16:13:53 +00:00
Michael Natterer 06a976ce7f replaced the "MaskBuf *paint_mask" parameters by "PixelRegion
2004-05-26  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintcore.[ch] (gimp_paint_core_paste)
	(gimp_paint_core_replace): replaced the "MaskBuf *paint_mask"
	parameters by "PixelRegion *mask_bufPR", so subclasses can pass in
	any kind of paint_mask buffer and are not restricted to MaskBufs.

	Also removes implicit knowledge about the MaskBuf originating from
	a brush in paint_mask_to_canvas_buf() and _to_canvas_tiles() which
	don't need to offset the mask by width/2 height/2 any more.

	Made gimp_paint_core_validate_undo_tiles() and
	gimp_paint_core_validate_canvas_tiles() protected functions.

	* app/paint/gimpbrushcore.c (gimp_brush_core_paste_canvas)
	(gimp_brush_core_replace_canvas): create correctly positioned
	PixelRegions from the MaskBufs before passing them to the
	paint_core.
2004-05-26 11:37:23 +00:00
Michael Natterer 1bdb42bc53 removed "gdouble scale" parameter and added "GimpPaintOptions" in
2004-05-26  Michael Natterer  <mitch@gimp.org>

	* app/paint/gimppaintcore.[ch]: removed "gdouble scale" parameter
	and added "GimpPaintOptions" in GimpPaintCore::get_paint_area().
	Check if virtual functions exist befoe calling them.

	* app/paint/gimpbrushcore.[ch]: added "gdouble scale" to GimpBrushCore
	and "gboolean use_scale" to GimpBrushCoreClass (defaults to TRUE).
	Set scale from paint_options in GimpPaintCore::get_paint_area().
	Removed "scale" parameter from gimp_brush_core_paste_canvas()
	and _replace_canvas().

	* app/paint/gimpsmudge.c (gimp_smudge_class_init): set use_scale
	to FALSE.

	* app/paint/gimpclone.c
	* app/paint/gimpconvolve.c
	* app/paint/gimpdodgeburn.c
	* app/paint/gimperaser.c
	* app/paint/gimppaintbrush.c: removed all scale calculations and
	simply pass paint_options to GimpPaintCore::get_paint_area().
2004-05-26 09:32:03 +00:00
Michael Natterer 9a41a73de8 app/paint/Makefile.am app/paint/gimpbrushcore-kernels.h new GimpPaintCore
2004-05-25  Michael Natterer  <mitch@gimp.org>

	* app/paint/Makefile.am
	* app/paint/gimpbrushcore-kernels.h
	* app/paint/gimpbrushcore.[ch]: new GimpPaintCore subclass
	containing all the brush painting specific stuff.

	* app/paint/gimppaintcore-kernels.h: removed this file.

	* app/paint/gimppaintcore.[ch]: removed all brush stuff.

	* app/paint/gimpairbrush.c
	* app/paint/gimpclone.[ch]
	* app/paint/gimpconvolve.[ch]
	* app/paint/gimpdodgeburn.[ch]
	* app/paint/gimperaser.[ch]
	* app/paint/gimppaintbrush.[ch]
	* app/paint/gimppencil.c
	* app/paint/gimpsmudge.[ch]: changed accordingly. Derive all
	classes which used to derive directly from GimpPaintCore from
	GimpBrushCore now. Lots of cleanup.

	* app/paint/paint-types.h
	* app/paint/gimp-paint.c
	* app/paint/gimppaintcore-stroke.c
	* app/tools/gimppainttool.c
	* tools/kernelgen.c: changed accordingly.
2004-05-25 20:41:09 +00:00