#ifndef gimp_composite_regression_h #define gimp_composite_regression_h /* * The following typedefs are temporary and only used in regression testing. */ typedef struct { guint8 v; } gimp_v8_t; typedef struct { guint8 v; guint8 a; } gimp_va8_t; typedef struct { guint8 r; guint8 g; guint8 b; } gimp_rgb8_t; typedef struct { guint8 r; guint8 g; guint8 b; guint8 a; } gimp_rgba8_t; #ifdef GIMP_COMPOSIE_16BIT typedef struct { guint16 v; } gimp_v16_t; typedef struct { guint16 v; guint16 a; } gimp_va16_t; typedef struct { guint16 r; guint16 g; guint16 b; } gimp_rgb16_t; typedef struct { guint16 r; guint16 g; guint16 b; guint16 a; } gimp_rgba16_t; #endif #ifdef GIMP_COMPOSIE_32BIT typedef struct { guint32 v; } gimp_v32_t; typedef struct { guint32 v; guint32 a; } gimp_va32_t; typedef struct { guint32 r; guint32 g; guint32 b; } gimp_rgb32_t; typedef struct { guint32 r; guint32 g; guint32 b; guint32 a; } gimp_rgba32_t; #endif extern void gimp_composite_regression_print_vector (guchar vector[], GimpPixelFormat format, gulong n_pixels); extern void gimp_composite_regression_print_vector_v8 (gimp_v8_t v[], unsigned int n_pixels); extern void gimp_composite_regression_print_vector_va8 (gimp_va8_t v[], unsigned int n_pixels); extern void gimp_composite_regression_print_vector_rgb8 (gimp_rgb8_t v[], unsigned int n_pixels); extern void gimp_composite_regression_print_vector_rgba8 (gimp_rgba8_t v[], unsigned int n_pixels); extern double gimp_composite_regression_time_function (u_long iterations, void (*func)(), GimpCompositeContext *ctx); extern int gimp_composite_regression_comp_rgba8 (char *str, gimp_rgba8_t *rgba8A, gimp_rgba8_t *rgba8B, gimp_rgba8_t *expected, gimp_rgba8_t *actual, u_long length); extern int gimp_composite_regression_comp_va8 (char *str, gimp_va8_t *va8A, gimp_va8_t *va8B, gimp_va8_t *expected, gimp_va8_t *actual, u_long length); extern int gimp_composite_regression_compare_contexts (char *, GimpCompositeContext *ctx1, GimpCompositeContext *ctx2); extern void gimp_composite_regression_dump_rgba8 (char *str, gimp_rgba8_t *rgba, u_long n_pixels); extern void gimp_composite_regression_print_rgba8 (gimp_rgba8_t *rgba8); extern void gimp_composite_regression_print_va8 (gimp_va8_t *va8); extern void gimp_composite_regression_timer_report (char *name, double t1, double t2); extern gimp_rgba8_t *gimp_composite_regression_random_rgba8 (u_long n_pixels); extern gimp_rgba8_t *gimp_composite_regression_fixed_rgba8 (u_long n_pixels); extern GimpCompositeContext *gimp_composite_context_init (GimpCompositeContext *ctx, GimpCompositeOperation op, GimpPixelFormat a_format, GimpPixelFormat b_format, GimpPixelFormat d_format, GimpPixelFormat m_format, unsigned long n_pixels, unsigned char *A, unsigned char *B, unsigned char *M, unsigned char *D); #endif