2008-02-12 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationcolorbalance.c
* app/gegl/gimpoperationcolorize.c
* app/gegl/gimpoperationcurves.c
* app/gegl/gimpoperationdesaturate.c
* app/gegl/gimpoperationhuesaturation.c
* app/gegl/gimpoperationlevels.c
* app/gegl/gimpoperationposterize.c
* app/gegl/gimpoperationthreshold.c
* app/gegl/gimpoperationtilesink.c
* app/gegl/gimpoperationtilesource.c: added categories and very
lame descriptions. Dunno if the categories are good that way but
at least they are not NULL now.
svn path=/trunk/; revision=24876
2008-02-11 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: add gimp_curve_get_point().
* app/gegl/gimpcurvesconfig.c
* app/widgets/gimpcurveview.c: use it instead of accessing the
points array directly.
svn path=/trunk/; revision=24857
2008-02-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: keep the anchor points as an array of
GimpVector2 instead of plain doubles.
* app/gegl/gimpcurvesconfig.c
* app/widgets/gimpcurveview.c: changed accordingly.
svn path=/trunk/; revision=24842
2008-02-09 Michael Natterer <mitch@gimp.org>
* app/core/gimpcurve.[ch]: changed all values to be [0.0..1.0]
doubles instead of [0..255] integers. Also changed the API to use
doubles instead of ints. Still have the fixed-size arrays though.
(gimp_curve_map): new function to map values.
* app/gegl/gimpoperationcurves.c: remove private map() function
and use the one from GimpCurve.
* app/gegl/gimpcurvesconfig.c
* app/core/gimpdrawable-curves.c: port to the new gdouble API.
* app/tools/gimpcurvestool.c: use gimp_curve_get_uchar() to get
the arrays for the color bars.
* app/widgets/gimpcurveview.[ch]: port to gdouble and some cleanup.
svn path=/trunk/; revision=24837
2008-02-06 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationposterize.c
* app/gegl/gimpoperationhuesaturation.c (process): don't crash if
there is no config object.
svn path=/trunk/; revision=24821
2008-02-06 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationhuesaturation.c
(gimp_operation_hue_saturation_process): don't crash if there is
no config object.
svn path=/trunk/; revision=24820
2008-02-04 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpthresholdconfig.[ch]: add "gboolean color"
parameter to gimp_threshold_config_to_cruft() and set the "color"
boolean in the Threshold cruft struct.
* app/tools/gimpthresholdtool.c: don't fiddle with the cruft
struct any longer and pass gimp_drawable_is_rgb() to above
function instead.
svn path=/trunk/; revision=24778
2008-02-01 Michael Natterer <mitch@gimp.org>
* app/core/core-types.h
* app/gegl/gegl-types.h: have app/gegl know app/core's namespace.
* app/gegl/gimpoperationcurves.h: remove temp hack includes.
* app/gegl/gimpoperationcurves.c: include "core/gimpcurve.h"
* app/gegl/gimpbrightnesscontrastconfig.[ch]
* app/gegl/gimpcolorbalanceconfig.[ch]
* app/gegl/gimpcolorizeconfig.[ch]
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimphuesaturationconfig.[ch]
* app/gegl/gimplevelsconfig.[ch]
* app/gegl/gimpoperationcurves.[ch]
* app/gegl/gimpposterizeconfig.[ch]
* app/gegl/gimpthresholdconfig.[ch]: derive from GimpViewable, install
properties using the GimpConfig macros, add implementations of
GimpConfigInterface::equal() and ::copy() where needed.
* app/tools/gimpimagemaptool.[ch]: add prototype of a menu of
recently used settings so the same color correction can easily be
applied to many images.
svn path=/trunk/; revision=24770
2008-01-31 Sven Neumann <sven@gimp.org>
Delay GEGL initialisation until after the command-line parsing
so
that we can detect an already running GIMP instance and delegate
to that without going through the GEGL and babl initialisation.
* app/app.c (app_libs_init): don't add the GEGL options group
here. GEGL doesn't add any command-line options and it doesn't
look as if it would do that anytime soon.
* app/gegl/gimp-gegl.c (gimp_gegl_init): initialize GEGL here.
svn path=/trunk/; revision=24762
2008-01-28 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationtilesink.c
* app/gegl/gimpoperationtilesource.c (process): return FALSE when
there is no tile manager.
svn path=/trunk/; revision=24740
2008-01-28 Michael Natterer <mitch@gimp.org>
* app/gegl/gegl-types.h
* app/gegl/Makefile.am
* app/gegl/gimpbrightnesscontrastconfig.[ch]: new config object.
* app/tools/gimpbrightnesscontrasttool.[ch]: use it.
svn path=/trunk/; revision=24735
2008-01-27 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpcolorbalanceconfig.[ch]
* app/gegl/gimpcolorizeconfig.[ch]
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimphuesaturationconfig.[ch]
* app/gegl/gimplevelsconfig.[ch]
* app/gegl/gimpposterizeconfig.[ch]
* app/gegl/gimpthresholdconfig.[ch]: implement the GimpConfig
interface and remove public reset() functions except special ones
which reset only parts of the objects. Add lots of property
notifications.
* 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: use gimp_config_reset(), misc.
related changes and cleanups.
svn path=/trunk/; revision=24724
2008-01-25 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpoperationpointfilter.[ch]: new parent class for all
image map operations. Features a "config" member and "public"
get_property() and set_property() functions to be used by
subclasses.
* app/gegl/gimpoperationcolorbalance.[ch]
* app/gegl/gimpoperationcolorize.[ch]
* app/gegl/gimpoperationcurves.[ch]
* app/gegl/gimpoperationhuesaturation.[ch]
* app/gegl/gimpoperationlevels.[ch]
* app/gegl/gimpoperationposterize.[ch]
* app/gegl/gimpoperationthreshold.[ch]: derive from
GimpOperationPointFilter, remove "config" members, remove
finalize(), get_property() and set_property() implementations and
use the ones provided by the parent class.
svn path=/trunk/; revision=24713
2008-01-25 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimplevelsconfig.[ch]: add load_cruft() and
save_cruft() functions which load/save the old (current) curves
and levels file formats.
* app/tools/gimpcurvestool.c
* app/tools/gimplevelstool.c: use them here and remove a lot of
includes.
svn path=/trunk/; revision=24708
2008-01-24 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpcolorbalanceconfig.[ch]: new config object.
* app/gegl/gimpoperationcolorbalance.[ch]: use it.
* app/tools/gimpcolorbalancetool.[ch]: port to
GimpColorBalanceConfig and use the old ColorBalance cruft only in
map(). The effect of the GEGL operator is now even more different
from the cruft code because I removed a hack that was applying an
additional factor when mapping between the ColorBalance values and
the new properties, but that was only a workaround to make it look
more similar anyway. Will have to fix this properly.
* app/base/color-balance.[ch]: remove API that is now obsolete.
svn path=/trunk/; revision=24701
2008-01-23 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpcurvesconfig.[ch]
* app/gegl/gimpoperationcurves.[ch]: add curves operation and its
config object. Hack around badly to be able to use GimpCurve from
app/core.
* app/gegl/gimp-gegl.c: register the curves operation.
* app/tools/gimpcurvestool.[ch]: added get_operation() implemenetation
and use the new config object instead of keeping around 5 curves.
svn path=/trunk/; revision=24683
2008-01-23 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationlevels.[ch]
(gimp_operation_levels_map_input): new utility function which maps
a single value.
* app/tools/gimplevelstool.[ch] (levels_update_adjustments): use the
new function to create the input arrays for gimp_color_bar_set_buffer().
Removed the Levels struct from the GimpLevelsTool struct and only
use it in map() when needed.
* app/base/levels.[ch]: remove obsolete API and struct members.
svn path=/trunk/; revision=24682
2008-01-22 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimphuesaturationconfig.[ch]: new config object.
* app/gegl/gimpoperationhuesaturation.[ch]: remove all properties
and add a "config" property. Also add API to map a single GimpRGB
needed by the hue-saturation tool's color areas.
* app/tools/gimphuesaturationtool.[ch]: switch to using
GimpHueSaturationConfig, use the old HueSaturation struct only in
map().
* app/base/hue-saturation.[ch]: remove API that's no longer needed.
svn path=/trunk/; revision=24667
2008-01-21 Michael Natterer <mitch@gimp.org>
* app/gegl/gimplevelsconfig.[ch]: add utility function
gimp_levels_config_to_levels_cruft() which fills the old Levels
struct from a GimpLevelsConfig object.
* app/tools/gimplevelstool.c: use it.
svn path=/trunk/; revision=24658
2008-01-18 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpcolorizeconfig.[ch]: new config object.
* app/gegl/gimpoperationcolorize.[ch]: remove all properties and
add a "config" property.
* app/tools/gimpcolorizetool.[ch]: port to GimpColorizeConfig, use
the old Colorize struct only in map().
svn path=/trunk/; revision=24647
2008-01-18 Michael Natterer <mitch@gimp.org>
* app/gegl/gimplevelsconfig.[ch]: ported the stretch and pick
functions from base/levels.c.
* app/tools/gimplevelstool.[ch]: use them instead of the old
stuff. Also switch to GimpLevelsConfig as primary storage for all
settings and fill the old Levels struct only when needed in map().
Remove all hackish fiddling with levels_tool->channel because it
is now always what is set in the menu.
svn path=/trunk/; revision=24646
* app/gegl/gimpoperationtilesink.c:
* app/gegl/gimpoperationtilesource.c: Some changes due to changed
location of where the various GEGL headers get installed on the
system.
* app/gegl/gegl/gegl-operation.h: synced from GEGL.
svn path=/trunk/; revision=24639
2008-01-17 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimplevelsconfig.[ch]: new config object for the levels
operation's settings.
* app/gegl/gimpoperationlevels.[ch]: remove all properties and add
a "config" property instead.
* app/tools/gimplevelstool.[ch]: keep a GimpLevelsConfig around.
svn path=/trunk/; revision=24637
2008-01-17 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationcolorize.c
* app/gegl/gimpoperationhuesaturation.c (process): move some
calculations and assignments out of the inner loop.
svn path=/trunk/; revision=24636
* app/gegl/gegl/gegl-operation.h: synced from GEGL.
* app/gegl/gegl/graph/gegl-node-context.h: removed, since none
of it's provided functionlity is any longer used by the GIMP
implemented ops.
* app/gegl/gegl/graph/: removed.
svn path=/trunk/; revision=24631
* app/gegl/gegl/buffer/gegl-buffer-types.h: removed.
* app/gegl/gegl/buffer/: removed.
* app/gegl/gegl/gegl-operation.h: synced from gegl. Now includes
the installed gegl-buffer.h which contains the public typedefs
needed for implementing operations anyways.
svn path=/trunk/; revision=24630
2008-01-16 Michael Natterer <mitch@gimp.org>
Fix gegl types and includes so we can include operations from
app/gegl in other gimp files (needed soon):
* app/gegl/gegl/gegl-types.h: not copied from gegl any longer.
Now contains only two typedefs needed by the copied operation
headers.
* app/gegl/gegl-types.h: include above types file.
* app/gegl/gimp-gegl.c
* app/gegl/gimpoperationcolorbalance.c
* app/gegl/gimpoperationcolorize.c
* app/gegl/gimpoperationdesaturate.c
* app/gegl/gimpoperationhuesaturation.c
* app/gegl/gimpoperationlevels.c
* app/gegl/gimpoperationposterize.c
* app/gegl/gimpoperationthreshold.c
* app/gegl/gimpoperationtilesink.c
* app/gegl/gimpoperationtilesource.c: include only <gegl.h> and
"gegl-types.h" from this directory, which is much more gimpish
now. Include "gegl/buffer/gegl-buffer.h" in the source and sink
operations.
* app/tools/gimpimagemaptool.h: warn about inclusion of <gegl.h>
only if it hasn't been included before, so it only warns in the
files where we still have to address this issue.
svn path=/trunk/; revision=24625
2008-01-15 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationcolorize.[ch]
* app/gegl/gimpoperationlevels.[ch]
* app/gegl/gimpoperationthreshold.[ch]: changed all properties from
float to double.
* app/gegl/gimpoperationcolorize.c: normalized property ranges to
[0.0..1.0] or [-1.0..1.0] resp.
* app/tools/gimpcolorizetool.c: changed accordingly.
svn path=/trunk/; revision=24621
2008-01-14 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpoperationhuesaturation.[ch]: new operation.
* app/gegl/gimp-gegl.c: register it.
* app/tools/gimphuesaturationtool.c: use it.
svn path=/trunk/; revision=24608
2008-01-10 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpoperationcolorbalance.[ch]: new operator.
* app/gegl/gimp-gegl.c: register it.
* app/tools/gimpcolorbalancetool.c: use it.
svn path=/trunk/; revision=24587
2008-01-09 Sven Neumann <sven@gimp.org>
* app/gegl/gimpoperationtilesink.c: use the marshaller from GLib;
don't include gimpmarshal.h from app/core.
svn path=/trunk/; revision=24579
2008-01-07 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationlevels.[ch]: add properties, some cleanup.
* app/tools/gimplevelstool.c: use gegl_node_set() instead of
accessing the operation directly.
svn path=/trunk/; revision=24566
2008-01-07 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationcolorize.c (process): add some comments
about how this code is different from base/colorize.c
svn path=/trunk/; revision=24564
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/gegl/gegl/gegl-operation.h: updated from GEGL.
* app/gegl/gimpoperationtilesource.c: use the passed buffer in
process() and add prepare() implementation which sets the format.
svn path=/trunk/; revision=24559
* app/gegl/gimpoperationtilesink.c:
* app/gegl/gimpoperationtilesource.c: modified to match newer API in
GEGL.
* app/gegl/gegl/gegl-operation-sink.h:
* app/gegl/gegl/gegl-operation-source.h: updated from GEGL.
svn path=/trunk/; revision=24555
* app/gegl/gegl/gegl-operation-sink.h:
* app/gegl/gegl/gegl-operation-source.h:
* app/gegl/gegl/gegl-operation.h:
* app/gegl/gegl/gegl-types.h:
* app/gegl/gegl/graph/:
* app/gegl/gegl/graph/gegl-node-context.h: synchronoised with GEGL
headers.
* app/gegl/gimpoperationtilesink.c:
* app/gegl/gimpoperationtilesource.c: updated to new API, where a
GeglNodeContext is used in process methods instead of gpointer
context_id.
svn path=/trunk/; revision=24538
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/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpoperationcolorize.[ch]
* app/gegl/gimpoperationposterize.[ch]: new operators which still
use a lot of gimp stuff they shouldn't use, but at least the
infrastructure for improving them is there now.
* app/gegl/gimp-gegl.c: register them.
* app/tools/gimpcolorizetool.c
* app/tools/gimpposterizetool.c: use them.
svn path=/trunk/; revision=24528
2008-01-03 Michael Natterer <mitch@gimp.org>
* app/gegl/Makefile.am
* app/gegl/gegl-types.h
* app/gegl/gimpoperationthreshold.[ch]: gimpish threshold operator
which has "low" and "high" properties.
* app/gegl/gimp-gegl.c: register it.
* app/gegl/gimpoperationdesaturate.[ch]: fix copyright.
* app/tools/gimpthresholdtool.[ch]: use the new operator.
svn path=/trunk/; revision=24515
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
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 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationtilesource.c: minor cleanup.
* app/gegl/gimpoperationtilesink.[ch]: add "data-written" signal
that is emitted whenever pixels have been written to the tile
manager.
svn path=/trunk/; revision=24484
* app/gegl/gimpoperationtilesink.c: specify that this operation does
not need the full buffer available before "flushing" the sink.
* app/gegl/gegl/gegl-operation-sink.h:
* app/gegl/gegl/gegl-operation.h: updated copy of headers.
svn path=/trunk/; revision=24480
* app/gegl/gimpoperationtilesink.c: specify that this operation does
not need the full buffer available before "flushing" the sink.
* app/gegl/gegl/gegl-operation-sink.h:
* app/gegl/gegl/gegl-operation.h: updated copy of headers.
svn path=/trunk/; revision=24479
* app/gegl/gimpoperationtilesource.c: override the default behaviour
of GeglOperationSource to expand the result rect to the full have
rect with a NULL (nop) implementation.
svn path=/trunk/; revision=24474
* app/gegl/gimpoperationtilesource.c: do not fetch the full extent
of the TileManager but only the needed pixels. Pass rowstride
correctly when fecting subregions.
svn path=/trunk/; revision=24470
* configure.in: depend on GEGL 0.0.15 (version ends in odd, thus
depending on svn trunk of GEGL).
* app/gegl/gimpoperationtilesource.c:
(gimp_operation_tile_source_process): just use GEGL_AUTO_ROWSTRIDE for
the rowstride in gegl_buffer_set for now.
svn path=/trunk/; revision=24469
2007-12-29 Michael Natterer <mitch@gimp.org>
* app/base/tile-manager.[ch]: add boxed type GIMP_TYPE_TILE_MANAGER.
* app/gegl/gimpoperationtilesink.c
* app/gegl/gimpoperationtilesource.c: use GParamSpecBoxed instead
of GParamSpecPointer for the tile-manager properties and ref them
properly. Some cleanup.
svn path=/trunk/; revision=24465
2007-12-29 Michael Natterer <mitch@gimp.org>
* app/gegl/gimpoperationtilesink.c (tile_sink_process): add
some const that should also be in the gegl api *cough*.
svn path=/trunk/; revision=24462
2007-12-29 Michael Natterer <mitch@gimp.org>
* app/gegl/gimp-gegl-utils.c (gimp_bpp_to_babl_format): use
g_return_val_if_fail() instead of g_warning().
svn path=/trunk/; revision=24461
2007-12-29 Øyvind Kolås <pippin@gimp.org>
Added adapter GEGL operations for reading and writing to TileManagers.
* configure.in:
* app/Makefile.am: added gegl subdir.
* app/gegl/Makefile.am: added.
* app/gegl/gimpops.c: (gimp_gegl_ops_init):
* app/gegl/gimpoptilesink.[ch]: adapter GEGL operation for writing to
GIMP tile managers.
* app/gegl/gimpoptilesource.[ch]: adapter GEGL operation for reading
from GIMP tile managers.
* app/main.c: (main): call gimp_gegl_ops_init()
* app/gegl/gegl/: added some headers from GEGL that are not installed
since they are not public API yet.
svn path=/trunk/; revision=24458