2008-04-25 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintoptions.c (gimp_paint_options_get_jitter):
add g_return_if_fail().
* app/paint/gimpheal.c (gimp_heal_motion)
* app/paint/gimpdodgeburn.c (gimp_dodge_burn_motion): free stuff
right after it's not used any longer, instead of at the end of the
function.
* app/paint/gimppaintbrush.c (_gimp_paintbrush_motion): move a
statement to improve consistency with other motion() functions.
svn path=/trunk/; revision=25526
2008-04-25 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintoptions.[ch]: reorder jitter options stuff to
be consistently ordered all over the place.
svn path=/trunk/; revision=25523
2008-03-30 Sven Neumann <sven@gimp.org>
Merged Bill's changes for bug #521433 from trunk with some minor
cleanups:
* app/paint/gimpbrushcore.[ch]: made
gimp_brush_core_get_brush_mask() public.
* app/paint/gimpheal.c: respect the brush mask.
svn path=/trunk/; revision=25309
2008-02-06 Michael Natterer <mitch@gimp.org>
* app/paint/gimpclone.c
* app/paint/gimpheal.c
* app/paint/gimpink.c
* app/widgets/gimphistogrameditor.c: remove includes that are
not needed any longer.
svn path=/trunk/; revision=24823
2008-02-04 Sven Neumann <sven@gimp.org>
* app/paint/gimpbrushcore.c (gimp_brush_core_create_bound_segs):
only smooth the inner area of the mask so that we don't enlarge
the boundary for hard brushes (bug #304798).
svn path=/trunk/; revision=24780
2008-01-22 Sven Neumann <sven@gimp.org>
* app/paint/gimpbrushcore.c (gimp_brush_core_create_bound_segs):
dilate the brush mask in order to obtain a simpler boundary.
Addresses bug #304798.
* app/tools/gimpbrushtool.c (gimp_brush_tool_draw_brush):
removed
redundant casts.
svn path=/trunk/; revision=24676
2008-01-14 Sven Neumann <sven@gimp.org>
* app/core/core-types.h
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell-coords.[ch]
* app/display/gimpdisplayshell.h
* app/paint/gimpink.[ch]
* app/paint/gimpinkundo.[ch]: applied patch from Alexia Death
that
adds an event evaluation function that decides if an event is
needed or can be discarded. As a side-product some useful
dynamics
parameters like velocity are added to the GimpCoords struct. The
Ink tool is changed to use this information. See bug #508639.
svn path=/trunk/; revision=24607
2007-12-12 Michael Natterer <mitch@gimp.org>
* app/paint/gimpheal.c: no need to declare init() and class_init(),
these declarations come for free with G_DEFINE_TYPE().
svn path=/trunk/; revision=24337
* app/paint/gimpheal.c: heal from edge of brush mask
instead of edges of paint area.
* app/paint/gimpbrushcore.[ch]: export
gimp_brush_core_get_brush_mask() to enable use of mask.
svn path=/trunk/; revision=24324
2007-12-06 Michael Natterer <mitch@gimp.org>
* app/paint/gimppaintcore-stroke.[ch]: added GError arguments and
fixed all functions to abort when the first call to
gimp_paint_core_start() fails (it won't succeed either for the
next path or whatever segemts).
* app/core/gimpitem.[ch]: added GError to gimp_item_stroke()
* app/core/gimpselection.c
* app/core/gimpchannel.c
* app/vectors/gimpvectors.c: don't gimp_message() in
GimpItem::stroke() but set the error.
* app/dialogs/stroke-dialog.c
* app/actions/vectors-commands.c
* app/actions/select-commands.c: handle the returned errors.
* tools/pdbgen/pdb/edit.pdb
* tools/pdbgen/pdb/paths.pdb
* tools/pdbgen/pdb/paint_tools.pdb: pass the error to the stroke
functions.
* app/pdb/paint_tools_cmds.c
* app/pdb/edit_cmds.c
* app/pdb/paths_cmds.c: regenerated.
svn path=/trunk/; revision=24273
2007-11-13 Sven Neumann <sven@gimp.org>
Fix for bug #494049 (painting doesn't update the histogram):
* app/paint/gimppaintcore.c: freeze the drawable preview while we
are painting. Update the drawable instead of the image.
* app/widgets/gimphistogrameditor.c: use a short timeout instead
of an idle handler to update the histogram.
svn path=/trunk/; revision=24143
2007-11-13 Michael Natterer <mitch@gimp.org>
Enable brush scaling for smudge (but only before, not while
painting). Fixes bug #471348.
* app/paint/gimpbrushcore.[ch] (struct GimpBrushCoreClass): rename
member "use_scale" to "handles_scaling_brush".
(gimp_brush_core_calc_brush_scale): apply pressure scale only if
both "handles_scaling_brush" and "use_pressure" are TRUE, and
apply the scaling from the options unconditionally.
(gimp_brush_core_get_paint_area): don't re-fetch core->scale if
"handles_scaling_brush" is FALSE to keep the brush from scaling
*while* painting.
(gimp_brush_core_create_bound_segs): use the brush scale from the
options unconditionally since that's always used now.
* app/paint/gimpsmudge.c (gimp_smudge_brush_coords): use
gimp_brush_scale_size() to figure the accum_buffer's size instead
of using the brush mask's size directly.
* app/tools/gimppaintoptions-gui.c (gimp_paint_options_gui): show
the brush scale controls for all brush tools.
svn path=/trunk/; revision=24140
2007-10-30 Sven Neumann <sven@gimp.org>
Fix drawing of straight lines using the Shift key and a tablet
(bug #164240):
* app/tools/gimppainttool.c (gimp_paint_tool_button_press): set
use_pressure to FALSE when drawing a straight line.
* app/paint/gimppaintbrush.c (_gimp_paintbrush_motion): respect
the use_pressure flag.
svn path=/trunk/; revision=23988
2007-07-17 Sven Neumann <sven@gimp.org>
* app/core/gimptoolinfo.c (gimp_tool_info_new): use the tool-info
identifier as the name of the tool-options object.
* app/paint/gimppaintoptions.c (gimp_paint_options_new): use the
paint-info identifier as the name of the paint-options object.
* app/paint/gimp-paint.c (gimp_paint_register): added parameter check.
* app/tools/gimp-tools.c (gimp_tools_init): formatting.
svn path=/trunk/; revision=22941
2007-07-04 Sven Neumann <sven@gimp.org>
* app/paint/gimpbrushcore.[ch]: applied patch from Jens Persson
that adds a LUT to apply the jitter in polar coordinates (bug
#434532).
svn path=/trunk/; revision=22859
2007-06-27 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagemap.c (gimp_image_map_clear)
(gimp_image_map_do): update the image, not the drawable so we
avoid constantly invalidating the drawable preview.
* app/tools/gimpimagemaptool.c (gimp_image_map_tool_response):
invalidate the drawable preview here.
* app/paint/gimppaintcore.c (gimp_paint_core_paste)
(gimp_paint_core_replace): clean up drawable offset handling code.
svn path=/trunk/; revision=22843
2007-06-25 Sven Neumann <sven@gimp.org>
* configure.in: removed extra check for gthread and fold it into
the GLIB and GTK checks.
* */Makefile.am: changed accordingly.
* app/main.c (main): always call g_thread_init().
svn path=/trunk/; revision=22832
2007-06-21 Michael Natterer <mitch@gimp.org>
Part one of fix for bug #449141 (fixes the projection but still
leaves some image previews unupdated).
* app/core/gimpimage.c (lots of functions)
* app/paint/gimppaintcore.c (gimp_paint_core_finish)
* app/file/file-open.c (file_open_sanitize_image): removed calls
to gimp_viewable_invalidate_preview(image).
* app/file/file-open.c (file_open_sanitize_image): update and
flush the entire image instead. Load plug-ins are not required to
call gimp_drawable_update() or anything else to make sure the
projection is up-to-date.
* app/core/gimpimage.c (gimp_image_real_flush): inavlidate the
image preview here because we now create it from the projection.
(this is still not the entirely correct place though).
svn path=/trunk/; revision=22815
2007-06-07 Sven Neumann <sven@gimp.org>
* app/text/Makefile.am
* app/core/Makefile.am
* app/tools/Makefile.am
* app/display/Makefile.am
* app/widgets/Makefile.am
* app/base/Makefile.am
* app/paint/Makefile.am
* app/plug-in/Makefile.am
* libgimp/Makefile.am
* libgimpthumb/Makefile.am
* tools/pdbgen/Makefile.am
* libgimpwidgets/Makefile.am: applied the remaining parts of the
patch from Daniel Richard G. to fix out-of-source-tree builds
(bug #444960).
svn path=/trunk/; revision=22735
2007-05-15 Michael Natterer <mitch@gimp.org>
* app/paint/gimpheal.c (gimp_heal_motion): convert the source
region to the dest region's type, not the other way around
(using the wrong if() condition when doing so). Fixes bug #390938.
svn path=/trunk/; revision=22496
2007-05-05 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs.c (convolve_region): instead of
just
copying the border pixels, convolute the full region and extend
the borders.
* app/paint/gimpconvolve.[ch]: removed broken code that used to
deal with the image borders. Fixes bug #434279. Also reduced the
matrix sizes to 3x3 as only the inner 3x3 values were nonzero.
svn path=/trunk/; revision=22424
2007-05-02 Sven Neumann <sven@gimp.org>
* app/paint/gimpsmudge.c (gimp_smudge_start)
* app/paint/gimpconvolve.c (gimp_convolve_motion): use
gimp_pickable_get_pixel_at() to get the color to use with
color_region(). Fixes Smudge and Convolve tools on grayscale images.
svn path=/trunk/; revision=22376
2007-04-13 Michael Natterer <mitch@gimp.org>
* app/base/base-types.h
* app/base/temp-buf.[ch]: remove redundant and inconsistently used
MaskBuf type and API.
* app/core/gimpbrush-scale.c
* app/paint/gimpbrushcore.[ch]: use TempBuf and its API instead.
This also optimizes away a useless memset() on brush scaling,
we completely fill each of the created buffers anyway.
svn path=/trunk/; revision=22249
2007-03-18 Michael Natterer <mitch@gimp.org>
* app/paint/gimpbrushcore.c: simplified brush scale calculation by
making sure that brush_core->scale always contains a value that's
suited as input for gimp_brush_scale_mask/pixmap() (bug #419290).
(gimp_brush_core_calc_brush_size): removed this function. All
places can now call gimp_brush_scale_size() directly with
core->scale as parameter.
(gimp_brush_core_calc_brush_scale): new function which returns
a linear scale factor which contains both the area-based pressure
scale factor and the linear paint options scale factor.
(gimp_brush_core_start)
(gimp_brush_core_get_paint_area): use the new function instead
of doing these calculations manually.
(gimp_brush_core_interpolate): remove call to
gimp_brush_core_scale_brush_size() and use core->scale directly.
(gimp_brush_core_get_paint_area)
(gimp_brush_core_scale_mask)
(gimp_brush_core_scale_pixmap): use gimp_brush_scale_size()
instead of the removed gimp_brush_core_scale_brush_size().
(gimp_brush_core_create_bound_segs): use only
paint_options->brush_scale here since the canvas brush preview
always has to asume full pressure.
* app/core/gimpbrush.c (gimp_brush_scale_size): special case
scale == 1.0 and return the mask's width/height without calling
the virtual function.
svn path=/trunk/; revision=22141
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-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-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-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