diff --git a/ChangeLog b/ChangeLog index 8f1a0da9ef..9869ec82e2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2003-09-12 Helvetix Victorinox + + * app/composite/gimp-composite-generic.[ch]: Added a proper + implementation of the BEHIND drawing mode. This should fix bug + #121889 + + * app/composite/gimp-composite-generic-installer.c: regenerated + 2003-09-12 Sven Neumann * app/vectors/gimpvectors-import.c (parse_svg_viewbox): return a diff --git a/app/composite/gimp-composite-generic-installer.c b/app/composite/gimp-composite-generic-installer.c index b19636a42c..b89abb8a58 100644 --- a/app/composite/gimp-composite-generic-installer.c +++ b/app/composite/gimp-composite-generic-installer.c @@ -144,6 +144,70 @@ static struct install_table { { GIMP_COMPOSITE_DISSOLVE, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_VA8, gimp_composite_dissolve_any_any_any_generic }, { GIMP_COMPOSITE_DISSOLVE, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGB8, gimp_composite_dissolve_any_any_any_generic }, { GIMP_COMPOSITE_DISSOLVE, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_dissolve_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_VA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGB8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_V8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_VA8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGB8, gimp_composite_behind_any_any_any_generic }, + { GIMP_COMPOSITE_BEHIND, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, GIMP_PIXELFORMAT_RGBA8, gimp_composite_behind_any_any_any_generic }, { GIMP_COMPOSITE_MULTIPLY, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, gimp_composite_multiply_any_any_any_generic }, { GIMP_COMPOSITE_MULTIPLY, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_VA8, gimp_composite_multiply_any_any_any_generic }, { GIMP_COMPOSITE_MULTIPLY, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_V8, GIMP_PIXELFORMAT_RGB8, gimp_composite_multiply_any_any_any_generic }, diff --git a/app/composite/gimp-composite-generic.c b/app/composite/gimp-composite-generic.c index e8e209771f..281bbb9fda 100644 --- a/app/composite/gimp-composite-generic.c +++ b/app/composite/gimp-composite-generic.c @@ -494,6 +494,15 @@ gimp_composite_color_only_any_any_any_generic (GimpCompositeContext * ctx) } } +void +gimp_composite_behind_any_any_any_generic (GimpCompositeContext * ctx) +{ + ctx->D = ctx->B; + ctx->combine = gimp_composite_pixel_alphap[ctx->pixelformat_A] + ? BEHIND_INTEN + : NO_COMBINATION; +} + void gimp_composite_multiply_any_any_any_generic (GimpCompositeContext * ctx) { diff --git a/app/composite/gimp-composite-generic.h b/app/composite/gimp-composite-generic.h index 14b6a0a3a9..7ded66631e 100644 --- a/app/composite/gimp-composite-generic.h +++ b/app/composite/gimp-composite-generic.h @@ -37,4 +37,5 @@ void gimp_composite_softlight_any_any_any_generic (GimpCompositeContext *); void gimp_composite_subtract_any_any_any_generic (GimpCompositeContext *); void gimp_composite_swap_any_any_any_generic (GimpCompositeContext *); void gimp_composite_value_any_any_any_generic (GimpCompositeContext *); +void gimp_composite_behind_any_any_any_generic (GimpCompositeContext * ); #endif