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-06-01 Sven Neumann <sven@gimp.org>
Added basic framework for plug-ins to access the use_cpu_accel
configuration (bug #342860):
* app/composite/gimp-composite.[ch]: added new function
gimp_composite_use_cpu_accel().
* libgimpbase/gimpprotocol.[ch]: added use_cpu_accel to the config
message.
* app/plug-in/gimppluginmanager-call.c: pass the return value of
gimp_composite_use_cpu_accel() for config.use_cpu_accel.
* libgimp/gimp.[ch]: make the config value accessible by means of
a new function gimp_use_cpu_accel().
* libgimp/gimp.def: updated.
2004-07-20 Sven Neumann <sven@gimp.org>
* app/app_procs.c
* app/base/base.[ch]
* app/composite/gimp-composite.[ch]: pass "be_verbose" to the base
and composite subsystems.
* app/composite/gimp-composite.c:
* app/composite/gimp-composite.h:
* app/main.c:
* app/base/base.c:
Changed the existing command line option, --no-mmx to
--no-cpu-accel and propogated the changes necessary to use that
flag to turn OFF the use of CPU extensions using only the generic
implementations in app/composite/gimp-composite-generic.c
Nota Bene: All of the previous gimp 1.2 code is still available
and is is enabled by setting the GIMP_COMPOSITE environment
variable to zero (GIMP_COMPOSITE=0x0). This causes only the 1.2
code to be used and is helpful for regression testing of the newer
gimp-composite code. Whether using the new code, or the old code
there should be absolutely no visible differences.
The newly renamed option --no-cpu-accel retains its previous
semantic meaning with the old 1.2 code--turning OFF MMX
optimisations.
* app/composite/gimp-composite-3dnow.c:
Incorrectly reported the inverse of whether not the 3dNow instruction set is
supported by the current CPU.
* app/composite/gimp-composite-{mmx,sse}.c:
Removed linkage of gimp_composite_divide_*. Something is
inexplicably broken, and this will get people working again
while I debug. This should close bug #125101.
* app/composite/gimp-composite.h
* app/composite/gimp-composite-generic.h
* app/composite/gimp-composite-regression.h: Reformatted to include
argument names in function prototypes.
* app/composite/gimp-composite.c
* app/composite/gimp-composite-generic.c
* app/composite/gimp-composite-regression.c: Added gtk-doc templates for functions.
* app/composite/make-install.py: migrated to new (trimmer) code and
removed dead code. Some beautification for generated code.
* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis,generic}.{c,h}:
All init() functions are also a run-time check and now expected to
return TRUE/FALSE if the particular set of compositing functions can
be used.
* app/composite/gimp-composite.c: No longer has to determine if
the particular set of compositing functions can be used.
* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-{install,test}.c:
Regenerated
* app/composite/test-composite.c: Deprecated, removed. All tests are automatically
generated and the code is in app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-test.c:
* app/composite/Makefile.am: removed unused references to test-composite.c
* app/composite/make-install.py: migrated to new (trimmer) code and
removed dead code. Some beautification for generated code.
* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis,generic}.{c,h}:
All init() functions are also a run-time check and now expected to
return TRUE/FALSE if the particular set of compositing functions can
be used.
* app/composite/gimp-composite.c: No longer has to determine if
the particular set of compositing functions can be used.
* app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-{install,test}.c:
Regenerated
* app/composite/test-composite.c: Deprecated, removed. All tests are automatically
generated and the code is in app/composite/gimp-composite-{mmx,sse,sse2,3dnow,altivec,vis}-test.c:
* app/composite/Makefile.am: removed unused references to test-composite.c
* 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.
* app/composite/gimp-composite-dispatch.[ch]: regenerated new code
taking advantage of simplified function prototypes.
* app/composite/gimp-composite-test.c: New regression testing
driver. This file is automatically generated, but it's included
in the cvs tree for expediency.
* app/composite/ns.py: hopeful checks for which OS is currently
running as a hint to what nm(1) is available.
* app/composite/gimp-composite-mmx.[ch]
* app/composite/gimp-composite-sse.[ch]
* app/composite/gimp-composite-generic.[ch]: function prototype
cleanup.
* app/composite/make-gimp-composite-dispatch.py: generates code to
test compositing functions.
* app/composite/gimp-composite-regression.[ch]: support for
automatically testing compositing functions.
2003-07-22 Sven Neumann <sven@gimp.org>
* app/composite/gimp-composite.[ch]: gimp_composite_dispatch()
doesn't have a return value, made it a void function.
* app/composite/make-gimp-composite-dispatch.py: big code cleanup.
* app/composite/Makefile.am: removed references to $(builddir)
* app/composite/test-composite.c: cleanup, preparation for transition to
automatically generated regression testing code.
* app/composite/gimp-composite.c: Clean up of typedef usage
* app/composite/gimp-composite-regression.[ch]: added foundation
for regression testing.
* 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
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-09 Sven Neumann <sven@gimp.org>
* app/composite/tester.c: removed ...
* app/composite/test-composite.c: ... and readded under a new name.
* app/composite/Makefile.am: added a check target that builds and
runs the test program.
* app/composite/gimp-composite-generic.c
* app/composite/gimp-composite-mmx.c
* app/composite/gimp-composite-util.h
* app/composite/gimp-composite.[ch]
* app/composite/make-gimp-composite-dispatch.py: made it fit
better into the GIMP source tree:
- do not include any files from headers
- don't use types from <sys/types.h> but use what glib provides
- coding style ...