2004-01-05 Manish Singh <yosh@gimp.org>
* app/paint-funcs/paint-funcs.c (expand_line): on second thought, just
make everything signed. There is no reason for any of it to be
unsigned.
2004-01-05 Manish Singh <yosh@gimp.org>
* app/paint-funcs/paint-funcs.c (expand_line): cast usage of unsigned
bytes variable in array subscripting to signed, so we really do get
a negative value when we need it. Fixes#130398.
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-09-05 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.[ch]: removed function map_to_color()
since it does not belong here and the two places using it look much
cleaner when doing that stuff themselves.
* app/core/gimpdrawable-preview.c: cleanup.
(gimp_drawable_preview_scale): do the indexed palette lookup here
instead of calling map_to_color().
* app/core/gimpimage.c (gimp_image_get_color): transform the
colors here instead of calling map_to_color().
* app/core/gimpimage.[ch] (gimp_image_get_color): reordered
parameters src parameters are before dest parameters.
Made the src color const.
(gimp_image_transform_color): reordered so src parameters are
*after* dest parameters (since this function operates on the dest
image and it makes sense to have the dest parameters
together). Made the src color const here, too.
* app/core/gimpdrawable-bucket-fill.c
* app/core/gimpdrawable.c
* app/core/gimpimage-contiguous-region.c
* app/core/gimpimage-projection.c
* app/core/gimpimagemap.c
* app/core/gimplayer.c
* app/core/gimppalette-import.c
* app/paint/gimpclone.c
* app/paint/gimppaintcore.c: changed accordingly.
* app/core/gimpedit.c (gimp_edit_cut,copy): simplified by
moving the "cropped" variable to a local scope.
* app/core/gimpimage-mask.c: calling gimp_image_update() followed
by gimp_viewable_imvalidate_preview(drawable) is equal to calling
gimp_drawable_update() directly.
* app/paint-funcs/paint-funcs.c (initial_sub_region): Fixed
another bug in initialising the compositing context for the
special case of dissolve mode. A further attempt to fix bug
#121438.
* app/composite/gimp-composite-generic.c
(gimp_composite_dissolve_any_any_any_generic): Fixed bug in
calculating whether the destination has an alpha channel (or
not).
* app/composite/gimp-composite.c (gimp_composite_init): Turn on
SSE, SSE2, and 3dnow instruction sets.
* app/paint-funcs/paint-funcs.c (initial_sub_region): Fixed
uninitialised data in the special case for dissolve.
This is the cause of Bug #121213.
* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-sse.c: Dereference all pointers
from *outside* of asm() construct.
* app/paint-funcs/paint-funcs.c: Fixed bug where dissolve opacity
was incorrectly set, and dissolve mask was garbage. This should
fix Bug #121213
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).
* composite/ modularisation of the automatic compositing function
"wiring" to construct the table of compositing functions at
run-time instead of compile time.
The environment variable GIMP_COMPOSITE is a hexadecimal number
representing a bit-field used to set/reset options in the
gimp-composite code.
* gimp-composite-altivec.[ch]: added
* gimp-composite-altivec-installer.[ch]: added
* gimp-composite-vis.[ch]: added
* gimp-composite-vis-installer.[ch]: added
* gimp-composite-mmx-installer.[ch]: added
* gimp-composite-sse-installer.[ch]: added
* gimp-composite-altivec-test.[ch]: added
* gimp-composite-vis-test.[ch]: added
* gimp-composite-mmx-test.[ch]: added
* gimp-composite-sse-test.[ch]: added
* make-installer.py: Added meta programme for generating code to
1) construct a table of compositing functions indexed by
operation, and the pixel formats of the sources and destination,
and 2) generating code for regression testing of these compositing
functions against the same functions in gimp-composite-generic.c
* gimp-composite-mmx.c (xxxgimp_composite_overlay_rgba8_rgba8_rgba8_mmx):
removing from the current set of optimisations because it appears
to be broken.
* Makefile.am: modified regression testing targets to now build
gimp-composite-*-test where * is any of generic, mmx, sse,
altivec, and vis.
* gimp-composite.c: moved in initialisation code
gimp_composite_init() from gimp-composite-dispatch.c
* gimp-composite.c: removed gimp_composite_unsupported().
* gimp-composite.c: use cpu_accel() to determine at run-time which
set of optimisations are to be used.
* gimp-composite.c: conditionally compile code for ARCH_X86.
* make-gimp-composite-dispatch.c: retired. See make-installer.py
* gimp-composite-mmx.c (op_overlay): namespace cleanup, op_overlay()
and all of the constant values are now static
* gimp-composite-mmx.c, gimp-composite-sse.c: fixed bug with the
alpha mask being the address of the alpha mask, not the mask
itself.
* app/paint-funcs/paint-funcs.c: Check gimp_composite_options.use
to see if we should use the new code or the old code.
2003-07-26 Hans Breuer <hans@breuer.org>
* libgimp/gimpcompat.h : renamed GimpOrientationType
with Compat postfix to avoid name clashing when using
this header together with libgimp/gimpenums.h
* app/composite/makefile.msc : (new file)
**/makefile.msc : updated
* libgimp/gimp.c : use static defined _tile<widht|height>
in this file instead of function call
* libgimp/gimp.def libgimp/libgimpui.def : moved from former
to latter : gimp_<brush|font|gradient|pattern>_select_<new|destroy>
added to former gimp_<brushes|gradients|patterns>_popup
* app/paint/gimppaintcore.h : removed double semicolon
which gave msvc error C2059: syntax error : ';'
* libgimpbase/gimpwin32-io.h : (new file) compatibilty defines
which were spread over multiple files to make up mostly for
missing unistd.h
* app/base/tile-swap.c app/core/gimpimagefile.c
libgimpbase/gimpdatafiles.c
plug-ins/FractalExplorer/FractalExplorer.c : use new header
* plug-ins/gflare/gflare.c
plug-ins/flame/flame.c
plug-ins/FractalExplorer/Dialogs.c :
removed #ifdef G_OS_WIN32 special casing, not needed anymore
due to g_file_test() usage
* app/text/*.* : changes required for build with PangoWin32,
but not commited ...
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-07-18 Michael Natterer <mitch@gimp.org>
* app/composite/make-gimp-composite-dispatch.py: made generated
output compile again and cleaned it up a bit.
* app/composite/gimp-composite-dispatch.c: regenerated.
* app/paint-funcs/paint-funcs.c (combine_sub_region): don't use
tabs please.
* app/composite/gimp-composite.[ch],
* app/composite/make-gimp-composite-dispatch.py
stubbed out the 32bit-per-channel pixel formats.
* app/composite/gimp-composite-sse.[ch],
* app/composite/Makefile.am
Broke-out and added the SSE versions of the MMX code.
* app/composite/gimp-composite.[ch],
* app/paint-funcs/paint-funcs.c,
* app/composite/make-gimp-composite-dispatch.py
Use of the new gimp_composite code is now turned on via the
environment variable GIMP_COMPOSITE with a non-zero value. For
example:
% GIMP_COMPOSITE=1 gimp-1.3
2003-07-14 Sven Neumann <sven@gimp.org>
* configure.in: use AM_PROG_AS instead of defining CCAS and
CCASFLAGS manually. Changed the assembler checks to use inline
assembly as we do in app/composite/gimp-composite-mmx.c.
* app/composite/Makefile.am: build the MMX code again; we need it
to be tested. If you have any problems, please report them. You can
quick-fix your build using the --disable-mmx configure option.
* app/paint-funcs/Makefile.am: reverted Helvetix' change ...
* app/paint-funcs/paint-funcs.c: ... and include
"composite/gimp-composite.h" instead of "gimp-composite.h".
2003-07-14 Sven Neumann <sven@gimp.org>
* app/base/base.c (base_init): include composite/gimp-composite.h.
* app/paint-funcs/paint-funcs.c: enforce GIMP coding style on the
code that Helvetix added.
app/paint-funcs/paint-funcs.c stubbed out code for using
gimp_composite. To enable the use of gimp_composite, set the
value of gimp_composite_use_old to 0 (zero).
app/base/base.c calls gimp_composite_init() hook to initialse
all the gimp_composite "stuff."
app/composite/make-gimp-composite-dispatch.py now generates
gimp-composite-dispatch.h
app/composite/gimp-composite-dispatch.[ch] are in CVS although
they are generated files. This is preparation for building the
table at run-time, instead of compile time.
app/composite/gimp-composite.c doesn't #include the main
dispatch table. This is preparation for building the table at
run-time, instead of compile time.
app/composite/Makefile.am doesn't compile gimp-composite-mmx.c
(until the various remaining gcc problems and configuration issues
are worked out).
2003-07-04 Sven Neumann <sven@gimp.org>
* configure.in: redone target platform detection and MMX assembly
checks. Basically copied from DirectFB.
* app/Makefile.am
* app/arch/i386/mmx/detect_mmx.S
* app/arch/i386/mmx/paint_funcs_mmx.S
* app/paint-funcs/Makefile.am
* app/paint-funcs/paint-funcs-mmx.h
* app/paint-funcs/paint-funcs-simd.S: removed the old MMX routines.
New ones will come instead.
* app/base/Makefile.am
* app/base/detect-mmx.[Sh]: removed these two files...
* app/base/cpu-accel.[ch]: ... and added new ones that do more
fine-grained cpu acceleration detection. Again taken from DirectFB
but the code is originally from mpeg2dec.
* app/base/base.c: print results from cpu feature tests.
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-04-29 Pedro Gimeno <pggimeno@wanadoo.es>
* app/paint-funcs/paint-funcs.c (shrink_line): Serialize access to
source and destination memory to reduce the chance of cache misses
when dealing with large images. Enable some assertions temporarily
to ensure that the algorithm works properly before backporting it.
2003-04-25 Pedro Gimeno <pggimeno@wanadoo.es>
* app/paint-funcs/paint-funcs.c: Some reformattings to improve
readability.
(shrink_line): Added some explanatory comments.
(border_region): Fixed wrong (though harmless) allocation bug: used
sizeof(gint16 *) where sizeof(gint16) was needed.
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.
2002-11-07 Sven Neumann <sven@gimp.org>
* Makefile.am: removed mydistcheck hook.
* app/base/Makefile.am
* app/paint-funcs/Makefile.am: removed automake-1.4 and 1.5 specific
stuff; made it work correctly for srcdir != builddir.
* tools/pdbgen/Makefile.am: do not to write into the source tree.
2002-11-07 Sven Neumann <sven@gimp.org>
* libgimp/Makefile.am
* libgimpbase/Makefile.am
* libgimpcolor/Makefile.am
* libgimpmath/Makefile.am
* libgimpmodule/Makefile.am
* libgimpwidgets/Makefile.am: added uninstall hooks.
2002-09-06 Hans Breuer <hans@breuer.org>
* */*/makefile.msc : updated
* libgimptool/makefile.msc : new file, libgimptool
is currently build as static lib due to references
into app/core
* themes/Default/makefile.msc : removed
* themes/Default/images/makefile.msc : new file
* libgimpwidgets/makefile.msc libgimpwidgets/gimpwidgets.c
updated (externals)
* app/paint-funcs.c : replaced gccism varibale size array on
stack with portable alloca, removed sizeof(buf) check which
must fail now.
* app/config/gimpconfig.c : get write/close protos
on win32 from io.h
* app/config/gimprc.c : dito and <string.h>
* app/config/gimpscanner.c : <string.h> only
* app/core/gimpcontainer.c : workaround for clumsy
compilers not supporting vararg macros
* app/core/gimpdocumentlist.c app/core/gimpparasitelist.c
include <io.h> on win32
* app/widgets/gimpdocumentview.c
app/widgets/gimpimagedock.c
app/widgets/gimppreview.c : add #ifdef __GNUC__
to avoid breaking on non standard pragma #warning.
* app/gui/session.c : include <string.h>
* regexrepl/makefile.msc : build as dll
* plug-ins/makefile.msc : updated
* plug-ins/common/pix.c : open file binary
* plug-ins/common/spheredesigner.c : avoid error
'incompatible types' while assigning, use memcpy()
2002-06-08 Sven Neumann <sven@gimp.org>
* app/base/Makefile.am
* app/paint-funcs/Makefile.am: automake-1.6 seems to use yet another
variable to pass flags to the assembler (bug #84514). Define
AM_CCASFLAGS like AM_ASFLAGS to satisfy all versions of automake.
* configure.in
* all Makefiles: removed STRIP_BEGIN and STRIP_END since it's a
GNU make extension that we don't really need and newer versions of
automake don't seem to like it.
2002-05-31 Michael Natterer <mitch@gimp.org>
* app/paint-core/paint-core.c (combine_sub_region): this is
getting silly: this time (maybe) really fix#83418 and #26072: of
course the local buffer needs to take the sizes of all three
passed in regions into account, not only two of them *sigh*
2002-05-29 Michael Natterer <mitch@gimp.org>
* app/paint-funcs/paint-funcs.c: fixed#83418, which was caused by
my bogus "fix" for #34849 (initial_sub_region:: error :: src->w *
(src->bytes + 1) > 512).
The assertions were there because there were local temporary
buffers of 512 bytes size. Now the buffers' size is
MAX (src->width * src->bytes, dest->width * dest->bytes) which
should be enough this time :) Re-enabled the assertions because
of paranoia...