Added a proper implementation of the BEHIND drawing mode. This should fix

* 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
This commit is contained in:
Helvetix Victorinox 2003-09-12 21:33:09 +00:00
parent 2360c02c15
commit e76b755640
4 changed files with 82 additions and 0 deletions

View file

@ -1,3 +1,11 @@
2003-09-12 Helvetix Victorinox <helvetix@gimp.org>
* 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 <sven@gimp.org>
* app/vectors/gimpvectors-import.c (parse_svg_viewbox): return a

View file

@ -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 },

View file

@ -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)
{

View file

@ -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