* app/gegl/gimpoperationpointlayermode.c
(gimp_operation_point_layer_mode_process): Replaced the XXX for
Soft light with a FIXME.
svn path=/trunk/; revision=27514
* app/gegl/gimpoperation*.c: Prefix the GIMP GEGL operations with
"gimp:" instead of "gimp-" so we follow the GEGL prefix style and
better serialize to XML.
* app/tools/gimp*tool.c
* app/core/gimpdrawable-*.c
* app/core/gimpdrawable.c
* app/core/gimpimagemap.c
* app/core/gimpprojection.c: Changed accordingly.
svn path=/trunk/; revision=27512
* app/gegl/gimpoperationpointlayermode.c: Introduced helper macros
fooC to properly un-multiply pre-multiplied data without causing
NaNs. This fixes some compositing issues involving complete
transparency.
svn path=/trunk/; revision=27511
* app/gegl/gimpoperationpointlayermode.c: Renamed fooC aliases to
fooCa since they represent pre-multiplied color data.
svn path=/trunk/; revision=27510
* app/gegl/gimpoperationpointlayermode.c: Get rid of GRand in
process() and use a lut instead. A little benchmark showed a
performance improvement of 78%. Also added defines for the the
size of the area of which Dissolve repeats it dissolve pattern.
svn path=/trunk/; revision=27509
* app/gegl/gimpoperationpointlayermode.c
(gimp_operation_point_layer_mode_process): Implemented Erase, Anti
Erase, Color Erase and Replace. These are not normal layer modes
and handle alpha in their own way. In addition to this, the
behavior of Replace doesn't map very well to GEGL which uses
infinite sized "layers".
Completely works the same:
o Erase
o Anti Erase
o Color Erase
Works different but similar:
o Replace
* app/paint-funcs/paint-funcs.[ch]: Expose
paint_funcs_color_erase_helper() so it can be used in the
GimpOperationPointLayerMode implementation. Once the migration is
complete this function can be moved entirely to the op and be
tailored to work on premultiplied data.
svn path=/trunk/; revision=27502
2008-10-31 Sven Neumann <sven@gimp.org>
Bug 558660 – help behavior for locales without manual
translation
* app/widgets/gimphelp.c (gimp_help_user_manual_is_installed):
as a fallback check for the english user manual.
svn path=/trunk/; revision=27500
2008-10-31 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c (gimp_text_tool_key_press): bail out
when the passed display is != tool->display. Makes the keyboard
work in other displays while the text tools is active.
svn path=/trunk/; revision=27498
2008-10-31 Michael Natterer <mitch@gimp.org>
* app/tools/gimpdrawtool.[ch]: add gimp_draw_tool_draw_text_cursor()
which draws a properly transformed cursor that always has the same
line width.
* app/tools/gimptexttool.c (gimp_text_tool_draw): use it instead
of drawing a cursor here that is broken at anything but 1:1 zoom.
svn path=/trunk/; revision=27497
2008-10-31 Sven Neumann <sven@gimp.org>
* configure.in: also check for freetype2 when checking for
pangocairo. Should fix the build on systems where the FT2
include
path is not included otherwise.
svn path=/trunk/; revision=27494
2008-10-31 Sven Neumann <sven@gimp.org>
* configure.in: bumped minimum required version of Cairo to
1.6.4.
* app/core/gimpscanconvert.c: use
cairo_format_stride_for_width().
svn path=/trunk/; revision=27488
* app/gegl/gimpoperationpointlayermode.c
(gimp_operation_point_layer_mode_process): Formating,
simplification and fixed operator precedence for the seed (not
that it matters much).
svn path=/trunk/; revision=27487
* app/gegl/gimpoperationpointlayermode.c
(gimp_operation_point_layer_mode_process): The GEGL API actually
allows us to handle the Dissolve layer mode as a point op. The
GEGL implementation of Dissolve uses a faster implementation for
deterministic behavior than the legacy Dissolve implementation.
The end result should be identical (although not on the
pixel-level).
Completely works the same:
o Dissolve
svn path=/trunk/; revision=27485
2008-10-31 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c (gimp_text_tool_key_press): bail out
instead of crashing if the tool has no display.
(gimp_text_tool_draw)
(gimp_text_tool_draw_preedit)
(gimp_text_tool_draw_selection)
(gimp_text_tool_xy_to_offset): need to adjust all drawing and
event coordinates by a possible negative offset between logical
rectangle and ink rectangle (if the ink rectangle is larger than
the logical one).
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_tool_events): continue normally if
tool_manager_key_press_active() returns FALSE.
svn path=/trunk/; revision=27484
2008-10-30 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c: remove lots of unused variables,
apparently my builds were without proper warnings for some time.
Some formatting cleanup and code reordering.
* app/actions/text-tool-actions.c
* menus/text-tool-menu.xml: rename "text-tool-input-methods"
to "text-tool-input-methods-menu".
svn path=/trunk/; revision=27482
2008-10-30 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayout.c: fixed order of includes.
* app/text/gimptext-compat.c: ported to PangoCairo like the rest
of the text rendering code.
svn path=/trunk/; revision=27481
2008-10-30 Sven Neumann <sven@gimp.org>
* app/text/gimptextlayout-render.c: removed an obsolete and
misleading comment.
svn path=/trunk/; revision=27480
* app/display/gimpdisplayshell-callbacks.c
(gimp_display_shell_canvas_size_allocate): Don't try to be clever,
call gimp_display_shell_scaled() whenever the canvas size changes
so a newly created display shell gets updated properly.
svn path=/trunk/; revision=27469
2008-10-29 Sven Neumann <sven@gimp.org>
Bug 558451 – Cannot build GIMP using Sun CC on Solaris 2.8
* app/pdb/gimp-pdb-compat.c
* app/gegl/gimpoperationtilesink.c
* app/gegl/gimpoperationtilesource.c
* app/tools/gimpgegltool.c: applied patches from Eric Lamarque
fixing the build using Sun CC on Solaris.
svn path=/trunk/; revision=27467
* app/gegl/gimpoperationpointlayermode.c
(gimp_operation_point_layer_mode_process): Implemented the layer
modes Hue, Saturation, Color and Value.
Works the same for 100% opaque layers:
o Hue
o Saturation
o Color
o Value
* libgimpcolor/gimphsl.[ch]: Added gimp_hsl_set().
svn path=/trunk/; revision=27466
2008-10-29 Michael Natterer <mitch@gimp.org>
* app/core/gimpselection.[ch]: change member "gboolean stroking"
into "gint stroking_count". Add push/pop API to increase/decrease
the counter. Pretend the selection is empty if the counter is > 0.
Enables correctly rendering vector layers even if there is a
selection.
svn path=/trunk/; revision=27464
2008-10-29 Sven Neumann <sven@gimp.org>
Bug 557950 – Scaling in Gimp 2.6 is much slower than in Gimp 2.4
* app/paint-funcs/scale-region.c: don't do multi-pass scaling
when
we are scaling up.
svn path=/trunk/; revision=27462
2008-10-29 Sven Neumann <sven@gimp.org>
Bug 558420 – projection incorrect with alpha-less layers
* app/core/gimpprojection-construct.c
(gimp_projection_initialize):
need to initialize the projection if the covering layer is not
opaque.
svn path=/trunk/; revision=27460
2008-10-29 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpstrokeeditor.c: move the "Antialias" toggle from
here...
* app/widgets/gimpfilleditor.c: ...to here because it makes sense
for both filling and stroking.
svn path=/trunk/; revision=27458
* app/tools/gimpmagnifytool.c (gimp_magnify_tool_button_release):
When zooming with a click, use gimp_display_shell_scale() instead
of local zoom logic.
svn path=/trunk/; revision=27452
2008-10-28 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpwidgets-utils.[ch]: added "gboolean below" to
gimp_enum_radio_frame_add() and gimp_enum_radio_box_add() and
place the widget right of the radio button unless "below" is TRUE.
* app/dialogs/convert-dialog.c
* app/dialogs/layer-add-mask-dialog.c
* app/tools/gimpbucketfilloptions.c
* app/tools/gimpclonetool.c
* app/tools/gimpperspectiveclonetool.c
* app/widgets/gimpfilleditor.c: pass TRUE so everything stays as-is.
svn path=/trunk/; revision=27450
* app/gegl/gimpoperationpointlayermode.c
(gimp_operation_point_layer_mode_process): Put the existing blend
formulas in expanded switch cases again. We need to keep the more
complicated layer modes like Hue, Value and Saturation in expanded
switch cases anyway.
svn path=/trunk/; revision=27449
2008-10-27 Michael Natterer <mitch@gimp.org>
* app/tools/gimptexttool.c: some minor cleanups.
(gimp_text_tool_draw): draw a cursor of two pixels width which is
between glyphs so it is visible both at the left and the right
border or the rectangle. Also make it look a little more
cursor-like.
svn path=/trunk/; revision=27446