2006-09-28 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite.h
* app/composite/gimp-composite-generic.c
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: added lots of const qualifiers,
moved variables to local scopes.
* app/base/pixel-processor.c: formatting.
2006-05-16 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.[ch]: implement copy_color() and
copy_color_pixels() which copy only the color bytes into a dest
that has one byte less than src. Renamed component_pixels() to
copy_component_pixels().
* app/core/Makefile.am
* app/core/core-types.h
* app/core/gimpbrushclipboard.[ch]: new GimpBrush subclass that
auto-updates its contents from gimp->global_buffer.
* app/core/gimp.c (gimp_real_initialize): add a clipboard brush to
the brush factory. Fixes bug #111082.
2006-04-25 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: code cleanup, moved variables into
local scopes, added const qualifiers.
2005-11-09 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: reverted patch which makes
alpha=255 when turned off because these functions are not only
used for display projection. Re-opens bug #143315.
Fixes bug #307213.
2005-09-28 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs-generic.h (swap_pixels): replaced
the binary XOR operations with a naive but faster implementation
using a local variable.
* app/paint-funcs/paint-funcs-generic.h (blend_pixels): change
variables from unsigned to signed -- fixes problem described
in comment 17 of bug #163721.
2005-07-09 Sven Neumann <sven@gimp.org>
* app/core/gimpchannel.c (gimp_channel_real_feather):
gaussian_blur_region() writes to the pixel data, need to initialize
the pixel region with dirty == TRUE;
* app/paint-funcs/paint-funcs-generic.h: formatting.
* app/paint-funcs/paint-funcs.c
* app/paint-funcs/paint-funcs-generic.h: fix bug #143315. When the
visibility of the Alpha channel is turned off, it should make alpha=255.
2004-07-30 Sven Neumann <sven@gimp.org>
Applied a bunch of AIX portability fixes (bug #148813):
* configure.in: when testing for Xmu library, link with -lXt -lX11.
* app/gui/tips-parser.c
* app/gui/user-install-dialog.c
* app/tools/tools-enums.h
* app/widgets/gimpdasheditor.c
* app/widgets/widgets-enums.h
* libgimpthumb/gimpthumb-error.h
* libgimpwidgets/gimpcolorbutton.c
* plug-ins/common/edge.c: removed trailing commas from enums.
* plug-ins/common/snoise.c
* plug-ins/imagemap/imap_cmd_move.c: no C++ style comments.
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c: use integers for bit fields.
2004-06-14 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs-generic.h (color_pixels): some code
cleanup I did while attempting to optimize this code further.
2004-06-05 Sven Neumann <sven@gimp.org>
* app/paint/gimppaintcore.c
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.[ch]: applied a patch from Philip
Lafleur that changes the way that paint is applied during a paint
stroke. Fixes bug #124225.
2004-04-15 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs.[ch]:
* app/paint-funcs/paint-funcs-generic.h: header cleanup, added
some const qualifiers, converted tabs to spaces. Fixes bug #140115
for the HEAD branch.
2004-01-27 Manish Singh <yosh@gimp.org>
* app/composite/gimp-composite-generic.c
(gimp_composite_overlay_any_any_any_generic)
* app/paint-funcs/paint-funcs-generic.h (overlay_pixels): use more
than one temporary when stacking INT_MULTs, to avoid undefined
values.
2003-10-16 Dave Neary <bolsh@gimp.org>
* app/base/color-balance.c
* app/base/hue-saturation.c
* app/composite/gimp-composite-generic.c
* app/paint-funcs/paint-funcs-generic.h
* app/tools/gimphuesaturationtool.c
* libgimpcolor/gimpcolorspace.[ch]: Changed all occurrences of
gimp_rgb_to_hls_int and gimp_hls_to_rgb_int to
gimp_rgb_to_hsl_int and gimp_hsl_to_rgb_int respectively. This
closes bug #124661.
2003-09-27 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch]: added new functions
color_region_mask() which works like color_region() but takes an
additional maskPR parameters and pattern_region() which fills
destPR with a TempBuf of *matching color depth*.
* app/paint-funcs/paint-funcs-generic.h: added corresponding
color_pixels_mask() and pattern_pixels().
* app/core/gimpimage.[ch] (gimp_image_transform_temp_buf): new
function which transforms a TempBuf to a specified drawable's
color space.
* app/core/gimpdrawable-bucket-fill.c: the functions were factored
out here. Removed them and use the new stuff.
* app/core/core-enums.[ch]: added enum GimpStrokeStyle which can
be one of { SOLID, PATTERN }.
* app/core/gimpstrokeoptions.[ch]: added "GimpStrokeStyle style"
property, cleanup.
* app/core/gimpdrawable-stroke.c: honor the new "style" property
and call the new color_region_mask() and pattern_region()
functions accordingly, cleanup.
* app/widgets/gimpstrokeeditor.c: added a GUI for the stroke
style. Ugly but works.
* app/gui/stroke-dialog.c: undefine "foreground" and "pattern" and
set the user context as parent context so we get these properties
from the global settings.
2003-08-24 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs-generic.h (blend_pixels): removed
some debugging output that I accidentally committed a while ago.
Fixes bug #120576 (slowness of smudge on alpha layers).
2003-07-21 Sven Neumann <sven@gimp.org>
* autogen.sh: fix for Solaris /bin/sh (bug #118002).
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.[ch]: the Forte compiler doesn't
like the use of global variables in inline functions. Applied a
patch from Damien Carbery that fixes this (bug #118002).
2003-06-13 Sven Neumann <sven@gimp.org>
Attempt to finally fix Smudge tool problems (bug #115057):
* app/paint-funcs/paint-funcs-generic.h (blend_pixels): added an
implementation for the non-alpha case.
* app/paint/gimpsmudge.c (gimp_smudge_start): added back code that
used to prefill the buffer if the inital area was clipped.
2003-06-09 Sven Neumann <sven@gimp.org>
* app/paint-funcs/paint-funcs-generic.h (blend_pixels): weight
pixels by their alpha value. Fixes the smudge tool (bug #72879).
2003-06-02 Michael Natterer <mitch@gimp.org>
Implemented DISSOLVE_MODE the way it should have always been.
Fixes bug #107402.
* app/paint-funcs-generic.h (struct apply_layer_mode_struct): added
"guchar *mask" so it can be used by the layer mode.
(dissolve_pixels): take an additional "mask" parameter and
dissolve the pixels according to the *combined* opacity of the
pixel's alpha, the opacity and the mask. Removed a wrong comment
about why we call g_rand_int() x times before we start to use its
values.
(layer_dissolve_mode): pass the mask to dissolve_pixels(). No need
to call add_alpha_pixels() since we overwrite the dest buffer
entirely in disolve_pixels().
* app/paint-funcs.c (initial_sub_region, combine_sub_region):
allocate the buffer large enough for DISSOLVE (which always needs
an alpha channel). Pass the mask to the layer mode functions.
Discard opacity and mask after applying DISSOLVE since it
"consumes" all transparency.
2003-03-12 Sven Neumann <sven@gimp.org>
* app/core/gimpchannel.[ch]: added gimp_channel_new_from_component()
which creates a new GimpChannel from an image's color component.
* app/gui/channels-commands.[ch]: added
channels_duplicate_component_cmd_callback().
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.[ch]: added code to extract a color
component from a PixelRegion (untested!).
* plug-ins/common/checkerboard.c: cosmetics.
2002-11-20 Dave Neary <bolsh@gimp.org>
* configure.in
* app/core/gimpbrushpipe.c
* app/gui/about-dialog.c
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.c
* libgimpmath/gimpmath.h
* libgimpwidgets/gimpwidgets.c
* plug-ins/common/CML_explorer.c
* plug-ins/common/blur.c
* plug-ins/common/cubism.c
* plug-ins/common/gee.c
* plug-ins/common/gee_zoom.c
* plug-ins/common/gqbist.c
* plug-ins/common/jigsaw.c
* plug-ins/common/lic.c
* plug-ins/common/noisify.c
* plug-ins/common/nova.c
* plug-ins/common/papertile.c
* plug-ins/common/plasma.c
* plug-ins/common/randomize.c
* plug-ins/common/sample_colorize.c
* plug-ins/common/scatter_hsv.c
* plug-ins/common/shift.c
* plug-ins/common/sinus.c
* plug-ins/common/smooth_palette.c
* plug-ins/common/snoise.c
* plug-ins/common/sparkle.c
* plug-ins/common/spheredesigner.c
* plug-ins/common/spread.c
* plug-ins/common/warp.c
* plug-ins/common/wind.c
* plug-ins/flame/cmap.c
* plug-ins/flame/flame.c
* plug-ins/flame/libifs.c
* plug-ins/gflare/gflare.c
* plug-ins/gimpressionist/gimpressionist.c
* plug-ins/gimpressionist/gimpressionist.h
* plug-ins/gimpressionist/plasma.c
* plug-ins/gimpressionist/repaint.c
* plug-ins/ifscompose/ifscompose_utils.c
* plug-ins/maze/algorithms.c
* plug-ins/maze/maze.c
* plug-ins/maze/maze.h
* plug-ins/mosaic/mosaic.c: Change all occurrences of RAND_MAX,
G_MAXRAND, rand(), srand(), lrand48(), srand48(), random(),
srandom(), RAND_FUNC and SRAND_FUNC to the appropriate g_rand*
equivalent. Programs which require seed setting for reproducible
results, and anything in the core, gets a dedicated GRand * for
the lifetime required. Programs which only ever used random
numbers for tossing a coin, rolling a dice, etc use g_random
functions. For the rest, judgement was used. Where it was easy, a
GRand * object was used and g_rand_* functions were
preferred. This fixes bug #67386 in HEAD.
2001-11-19 Daniel Egger <degger@fhm.edu>
* app/paint-funcs/paint-funcs.c
* app/paint-funcs/paint-funcs-generic.h
* app/paint-funcs/paint-funcs.h:
- Statified a few functions so they can be inlined.
- Simplified function calls.
- Unsignified variables and parameters where possible.
- Reduced lookuptable size for add_pixels from 256*256*4 bytes
to 2*256-1 bytes and O(n*n) function in paint_funcs_setup
to O(n). Should reduce memory consumption by almost 1/4 Mb.
This needs much more cleanup....
2001-11-19 Daniel Egger <degger@fhm.edu>
* app/paint-funcs/paint-funcs-mmx.h: New file. Added glue code
for the assembly MMX functions.
* app/paint-funcs/paint-funcs-generic.h: Moved MMX code from here ...
* app/paint-funcs/paint-funcs-mmx.h: ... to here. Cleaned up a bit
and don't check for use_mmx on every single call but ...
* app/paint-funcs/paint-funcs.c: (paint_funcs_setup): ... here and
register MMX functions if CPU has those capabilities.
Code is untested for the MMX case due no available Intel-Machine
right now but should't be to far away from a working state.
2001-11-19 Daniel Egger <degger@fhm.edu>
* app/paint-funcs/paint-funcs.c
* app/paint-funcs/paint-funcs-generic.h: Split generic (read: C)
code for pixelmanipulation and most of the code that belongs to it
into new file.
(apply_layer_funcs): Gone. The correct layer function is now
dispatched from the layer_mode_funcs table and the table is
per default initialised with the generic functions. Arguments
will be passed by a struct apply_layer_mode_struct instead
of directly per stack to avoid parameter typying madness.
It's now cleanly possible to check for availabilty of
MMX/AltiVec/(insert your favourite brew here) in
paint_funcs_setup () and change the table to use faster routines.
The old MMX cruft which is temporaribly in paint-funcs-generic.h
will soon be gone but I'm to tired now.
* app/paint-funcs/paint-funcs.c: Braind dead code for temporary
buffer (which never shrunk only grew) gone and replaced by
straightforward code.
* app/paint-funcs/paint-funcs-generic.h: Applied a bunch of obvious
optimisations to reduce code size and avoid parameter madness.
* paint-funcs-[gray|graya|indexed|rga|rgba].[c|h]: Gone. I lost
several days of work on these files and came to the conclusion
that there has to be an easier way anyway. :)
Everything well tested on PPC and producing exactly the same results
as the code before so this has good odds to be the first major
change that won't break GIMP. :)