mirror of
https://gitlab.gnome.org/GNOME/gimp
synced 2024-10-22 12:32:37 +00:00
b55753bb21
2005-07-31 Manish Singh <yosh@gimp.org> * acinclude.m4 * m4macros/Makefile.am * m4macros/detectcflags.m4: new macro: GIMP_DETECT_CFLAGS; used to detect which of a set of compiler options a compiler supports. * configure.in: use the above for the altivec and -fno-strict-aliasing flags. Also, use it to detect the presence of -mmmx and -msse, since those are needed to compile even MMX/SSE assembly with gcc 4.0. Define MMX/SSE_EXTRA_CFLAGS. * app/composite/Makefile.am: compile each of the composite flavors into their own library, so we can use automake's per-target CFLAGS. Use MMX/SSE/ALTIVEC_EXTRA_CFLAGS in the appropriate places. Build libappcomposite.a out of the resulting objects. * app/composite/gimp-composite-3dnow.c * app/composite/gimp-composite-altivec.c * app/composite/gimp-composite-mmx.c * app/composite/gimp-composite-sse.c * app/composite/gimp-composite-sse2.c * app/composite/gimp-composite-vis.c * app/composite/make-installer.py: move the _init functions into the installers, so only actually mmx/sse/etc. code gets compiled under the appropriate CFLAGS. * app/composite/gimp-composite-3dnow-installer.c * app/composite/gimp-composite-altivec-installer.c * app/composite/gimp-composite-mmx-installer.c * app/composite/gimp-composite-sse-installer.c * app/composite/gimp-composite-sse2-installer.c * app/composite/gimp-composite-vis-installer.c: regenerated. * app/composite/gimp-composite.c: remove useless cpu-accel.h include.
61 lines
2.1 KiB
C
61 lines
2.1 KiB
C
/* THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT */
|
|
/* REGENERATE BY USING make-installer.py */
|
|
#include "config.h"
|
|
#include <glib-object.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include "base/base-types.h"
|
|
#include "base/cpu-accel.h"
|
|
#include "gimp-composite.h"
|
|
|
|
#include "gimp-composite-sse2.h"
|
|
|
|
static struct install_table {
|
|
GimpCompositeOperation mode;
|
|
GimpPixelFormat A;
|
|
GimpPixelFormat B;
|
|
GimpPixelFormat D;
|
|
void (*function)(GimpCompositeContext *);
|
|
} _gimp_composite_sse2[] = {
|
|
#if defined(COMPILE_SSE2_IS_OKAY)
|
|
{ GIMP_COMPOSITE_DIFFERENCE, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_difference_rgba8_rgba8_rgba8_sse2 },
|
|
{ GIMP_COMPOSITE_ADDITION, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_addition_rgba8_rgba8_rgba8_sse2 },
|
|
{ GIMP_COMPOSITE_SUBTRACT, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_subtract_rgba8_rgba8_rgba8_sse2 },
|
|
{ GIMP_COMPOSITE_DARKEN, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_darken_rgba8_rgba8_rgba8_sse2 },
|
|
{ GIMP_COMPOSITE_LIGHTEN, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_lighten_rgba8_rgba8_rgba8_sse2 },
|
|
{ GIMP_COMPOSITE_GRAIN_EXTRACT, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_grain_extract_rgba8_rgba8_rgba8_sse2 },
|
|
{ GIMP_COMPOSITE_SWAP, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_swap_rgba8_rgba8_rgba8_sse2 },
|
|
#endif
|
|
{ 0, 0, 0, 0, NULL }
|
|
};
|
|
|
|
gboolean
|
|
gimp_composite_sse2_install (void)
|
|
{
|
|
static struct install_table *t = _gimp_composite_sse2;
|
|
|
|
if (gimp_composite_sse2_init ())
|
|
{
|
|
for (t = &_gimp_composite_sse2[0]; t->function != NULL; t++)
|
|
{
|
|
gimp_composite_function[t->mode][t->A][t->B][t->D] = t->function;
|
|
}
|
|
return (TRUE);
|
|
}
|
|
|
|
return (FALSE);
|
|
}
|
|
|
|
gboolean
|
|
gimp_composite_sse2_init (void)
|
|
{
|
|
#if defined(COMPILE_SSE2_IS_OKAY)
|
|
if (cpu_accel () & CPU_ACCEL_X86_SSE2)
|
|
{
|
|
return (TRUE);
|
|
}
|
|
#endif
|
|
|
|
return (FALSE);
|
|
}
|