2008-01-21 Sven Neumann <sven@gimp.org>
* app/core/gimpselection.c (gimp_selection_extract): don't clear
the selection as a side-effect of "Edit->Cut" (bug #510534).
svn path=/trunk/; revision=24662
2008-01-21 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable-levels.c: port to GEGL and use the new
code path when use-gegl is TRUE.
* app/base/levels.[ch]: remove stretch and pick APIs which are not
used any longer.
svn path=/trunk/; revision=24659
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
2008-01-09 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: add typedef GimpImageMapApplyFunc here.
* app/core/gimpimagemap.[ch] (gimp_image_map_new): add apply_func
and apply_data parameters.
(gimp_image_map_apply): remove them here and add a GeglRectangle
parameter which is the visible area of the affected drawable.
* app/tools/gimpimagemaptool.[ch]: keep apply_func and apply_data
around in the GimpImageMapTool struct.
(gimp_image_map_tool_create_map): pass them to gimp_image_map_new().
(gimp_image_map_tool_map): call gimp_image_map_apply() here and
pass the drawable's visible rectangle.
* app/tools/gimpbrightnesscontrasttool.c
* app/tools/gimpcolorbalancetool.c
* app/tools/gimpcolorizetool.c
* app/tools/gimpcurvestool.c
* app/tools/gimphuesaturationtool.c
* app/tools/gimplevelstool.c
* app/tools/gimpposterizetool.c
* app/tools/gimpthresholdtool.c (init): set apply_func and
apply_data in the parent instance.
(map): remove calls to gimp_image_map_apply().
svn path=/trunk/; revision=24573
2008-01-07 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h: include gegl/gegl-types.h instead of
base/base-types.h.
* app/gegl/gegl/gegl-types.h: add ugly #ifdefs so we can include
gegl.h and this file at the same time.
svn path=/trunk/; revision=24563
2008-01-07 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer.c (gimp_layer_transform_color): reordered
and renamed parameters to make more sense.
svn path=/trunk/; revision=24562
2008-01-05 Manish Singh <yosh@gimp.org>
* app/core/gimpimagemap.c: hardcode a declaration of
gegl_node_add_child() in here for now.
svn path=/trunk/; revision=24539
2008-01-04 Hans Breuer <hans@breuer.org>
**/makefile.msc app/gimpcore.def : updated so it compiles and links
(almost, see bug #507298)
svn path=/trunk/; revision=24533
2008-01-04 Michael Natterer <mitch@gimp.org>
* app/config/gimpcoreconfig.[ch]: add "use-gegl" property but
don't serialize it.
* app/widgets/gimptoolbox.c: add super ugly "Use GEGL" toggle to
the toolbox so we don't need to have prefs open all the time when
experimenting with gegl.
* app/tools/gimpimagemaptool.[ch]: remove "Use GEGL" toggle from
the tool dialogs and connect to the config property instead.
* app/core/gimpdrawable-desaturate.c
* app/core/gimpdrawable-invert.c: made them runtime-switchable by
looking at the config property.
svn path=/trunk/; revision=24530
2008-01-04 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagemap.c (gimp_image_map_apply): switch tile
sources and sinks to assume linear data.
svn path=/trunk/; revision=24526
committing patch by Simon Budig to give an indication
when working on a layer mask, updated to fix staleness
and respond to "edit-changed". Might fix bug #132204.
* app/core/core-enums.[ch]: add GIMP_SELECTION_LAYER_ON.
* app/core/gimplayermask.c: add handler for "edit-changed".
* app/core/gimpcanvas.[ch]: add new style
GIMP_CANVAS_STYLE_LAYER_MASK_ACTIVE.
* app/display/gimpdisplayshell-selection.c: use new style
when layer mask is active.
svn path=/trunk/; revision=24520
2008-01-03 Michael Natterer <mitch@gimp.org>
* app/core/gimpimagemap.c: quite some cleanup (use GeglRectangle
more globally and don't leave stuff around if we abort for
whatever reason).
svn path=/trunk/; revision=24516
2008-01-03 Michael Natterer <mitch@gimp.org>
Some more gegl code to have some playground for experimenting.
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpoperationdesaturate.[ch]: ported desaturate.
* app/gegl/gimp-gegl.c: register it.
* app/gegl/gimpoperationtilesink.h: fix name of parent class member.
* app/core/gimpdrawable-desaturate.c: use the new operator, but
keep the old code around (prepared for runtime switching).
* app/core/gimpdrawable-invert.c: prepare for runtime switching
here too.
svn path=/trunk/; revision=24514
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
2007-12-30 Sven Neumann <sven@gimp.org>
* app/gegl/gimp-gegl-utils.[ch]: added new function
gimp_bpp_to_babl_format_linear().
* app/gegl/gimpoperationtilesink.[ch]
* app/gegl/gimpoperationtilesource.[ch]: added boolean property
to
toggle between linear and gamma-corrected data.
* app/core/gimpdrawable-invert.c: assume linear data to be
closer
to the original definition of the invert operation in GIMP.
Enable the GEGL code path per default.
svn path=/trunk/; revision=24491
2007-12-30 Sven Neumann <sven@gimp.org>
* app/core/gimpdrawable-invert.c (gimp_drawable_invert): moved
processing in the GEGL code path back to the main loop.
svn path=/trunk/; revision=24490
2007-12-30 Michael Natterer <mitch@gimp.org>
First actual image processing with GEGL! Wheeeee :-)
* app/core/gimpimagemap.[ch]: added code to use gegl instead of the
old apply_func and apply_data.
(gimp_image_map_new): add GeglNode parameter that, if passed,
switches the whole thing to using a gegl graph with this node
as central processing node.
* app/tools/gimpimagemaptool.[ch]: add virtual function
get_operation() which, if implemented, returns a GeglNode to pass
to gimp_image_map_new(). Added a "Use GEGL" toggle so we can
switch between legacy and gegl code for the migration period.
* app/tools/gimpbrightnesscontrasttool.[ch]: implement
get_operation() and return a brightness-contrast node.
(gimp_briughtness_contrast_tool_map): set the node's properties
from the GUI.
svn path=/trunk/; revision=24488
* app/core/Makefile.am: added GEGL_CFLAGS.
* app/core/gimpdrawable-invert.c: added an alternate GEGL code path
that can be enabled by uncommenting ENABLE_GEGL in the file.
svn path=/trunk/; revision=24483
* app/core/Makefile.am: added GEGL_CFLAGS.
* app/core/gimpdrawable-invert.c: added an alternate GEGL code path
that can be enabled by uncommenting ENABLE_GEGL in the file.
svn path=/trunk/; revision=24482
2007-12-19 Michael Natterer <mitch@gimp.org>
* app/core/gimp-contexts.[ch]
* app/core/gimp-documents.[ch]: add GErrors to save() and load().
* app/core/gimp.c
* app/tools/gimp-tools.c: handle the returned errors.
svn path=/trunk/; revision=24403
2007-12-18 Sven Neumann <sven@gimp.org>
* app/core/gimppalette-import.c
* app/core/gimppalette-load.[ch]: applied slightly modified patch
from Nicola Archibald that adds import of colors from CSS files
(bug #464480).
* app/core/gimppalette.c (gimp_palette_find_entry): allow to call
this function on an empty palette.
svn path=/trunk/; revision=24393
2007-12-18 Sven Neumann <sven@gimp.org>
* app/base/tile-manager.[ch]: renamed tile_manager_validate() to
tile_manager_validate_tile(). If no validate_proc is set,
initialize the tile data to all zero when validating it. This way
we never hand out uninitialized data and valgrind doesn't need to
complain any longer.
* app/base/tile.c: changed accordingly.
* app/core/gimpselection.c: no need to set an extra validate_proc
here as the default implementation now does the job for us.
svn path=/trunk/; revision=24389
2007-12-14 Michael Natterer <mitch@gimp.org>
* app/core/gimp-edit.[ch]: added GErrors when functions can fail.
* app/actions/edit-commands.c: handle the returned errors.
* tools/pdbgen/pdb/edit.pdb: same here (*don't* pass the error as
usual since these functions never fail but have a boolean return
value indicating success instead; ugly, but better than having the
gimp_message() calls in the core). Also changed the named buffer
cut and copy functions to do the same (never fail but return a
NULL buffer name on failure), so they behave as documented.
* app/pdb/edit_cmds.c: regenerated.
svn path=/trunk/; revision=24362
2007-12-13 Sven Neumann <sven@gimp.org>
Speed up our display rendering code paths by keeping data with
pre-multiplied alpha where possible. The projection tile-manager
at 100 % zoom is not affected. So we can still always get the
non-pre-multiplied pixel data.
* app/core/gimpprojection.[ch]: removed
gimp_projection_get_opacity(), the projection is always opaque.
* app/base/tile-pyramid.[ch]: use pre-multiplied alpha for the
upper levels of the pyramid. This speeds up validation of the
upper levels significantly.
* app/base/temp-buf.[ch]: added temp_buf_demultiply().
* app/core/gimpimage-preview.c: demultiply the preview temp-buf
obtained from the projection's tile tyramid.
* app/display/gimpdisplayshell-draw.c
* app/display/gimpdisplayshell-render.c: added code to deal with
pre-multiplied data. In fact all data returned by
render_image_tile_fault() is now pre-multiplied so that
render_image_rgb_a() and render_image_gray_a() don't need to use
the large lookup tables from gimprender.[ch] any longer.
svn path=/trunk/; revision=24352
2007-12-12 Michael Natterer <mitch@gimp.org>
* app/core/gimplayer-floating-sel.c (floating_sel_to_layer): add
missing return value, this is no void function any more.
svn path=/trunk/; revision=24336
2007-12-09 Hans Breuer <hans@breuer.org>
* app/gimp-log.h : an ugly but working variant for no varargs macros
* app/base/base-utils.c(get_physical_memory_size) : fallback to
GetMemoryStatus() for older compiler/sdk
* app/core/gimplayer-floating-sel.c : second argument to g_set_error()
is an uint32, not a pointer
svn path=/trunk/; revision=24306
* app/display/gimpdisplayshell-draw.c: draw grid correctly when
non-integer spacing is combined with a large offset. Fixes
bug #502374.
* app/core/gimpimage-snap.c: make snapping to grid work when
coord is less than the grid offset.
svn path=/trunk/; revision=24294
2007-12-07 Michael Natterer <mitch@gimp.org>
* app/core/gimpselection.[ch]: added GErrors to
gimp_selection_extract() and gimp_selection_float().
* app/core/gimp-edit.c
* app/tools/gimpeditselectiontool.c
* app/actions/select-commands.c: handle the returned error.
* app/core/gimpdrawable-transform.c: pass NULL errors since this
file knows what it does and won't get errors.
* tools/pdbgen/pdb/selection.pdb: pass the error.
* app/pdb/selection_cmds.c: regenerated.
svn path=/trunk/; revision=24286
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-12-06 Michael Natterer <mitch@gimp.org>
Move some gimp_message() calls where they belong:
* app/core/gimplayer-floating-sel.[ch]: removed unreachable
gimp_message() in floating_sel_anchor() and added GError parameter
to floating_sel_to_layer().
* app/core/gimplayer.c
* app/core/gimpimage-quick-mask.c
* app/actions/layers-commands.c: pass NULL or an error as
appropriate and show the error message.
* tools/pdbgen/pdb/floating_sel.pdb: set the error when the passed
layer was no floating selection.
* app/pdb/floating_sel_cmds.c: regenerated.
svn path=/trunk/; revision=24272
2007-12-04 Michael Natterer <mitch@gimp.org>
* app/core/gimpdrawable.[ch]: added new API
gimp_drawable_estimate_memsize() and virtual function
GimpDrawable::estimate_memsize() which estimate the memsize of a
drawable after scaling/resizing.
* app/core/gimplayer.c: implement the virtual function and take
the layer mask into account.
* app/core/gimpimage-item-list.[ch] (gimp_image_item_list_get_list):
added const qualifiers.
* app/core/gimpimage-scale.c (gimp_image_scale_check): use the new
function to correctly estimate the new size instead of scaling the
drawables' memsizes including all constant parts. Fixes bug #329468.
* app/gimp-log.[ch]: added IMAGE_SCALE log domain.
* app/core/gimpimage-scale.c: use it here for debugging output.
svn path=/trunk/; revision=24260