First step towards fixing 'straight onto' blending.
authordooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Wed, 23 Jan 2008 19:58:30 +0000 (19:58 +0000)
committerdooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Wed, 23 Jan 2008 19:58:30 +0000 (19:58 +0000)
git-svn-id: http://svn.voria.com/code@1435 1f10aa63-cdf2-0310-b900-c93c546f37ac

synfig-core/trunk/src/synfig/layer_pastecanvas.cpp

index d343530..d68a619 100644 (file)
@@ -392,12 +392,15 @@ Layer_PasteCanvas::accelerated_render(Context context,Surface *surface,int quali
        // 'straight', then we need to blend transparent pixels with the
        // clipped areas of this tile, because with the 'straight' blend
        // method, even transparent pixels have an effect on the layers below
-       if (blend_method == Color::BLEND_STRAIGHT)
+       if (blend_method == Color::BLEND_STRAIGHT || blend_method == Color::BLEND_STRAIGHT_ONTO)
        {
                Surface clearsurface;
 
                Surface::alpha_pen apen(surface->begin());
                apen.set_alpha(get_amount());
+
+               // the area we're about to blit is transparent, so it doesn't
+               // matter whether we use 'straight' or 'straight onto' here
                apen.set_blend_method(Color::BLEND_STRAIGHT);
 
                /* This represents the area we're pasting into the tile,