Use a mutex to prevent the two render threads (rendering the workarea and the navigat...
[synfig.git] / synfig-core / trunk / src / synfig / layer_duplicate.cpp
index 922704a..32b9baa 100644 (file)
@@ -173,6 +173,7 @@ Layer_Duplicate::accelerated_render(Context context,Surface *surface,int quality
        Color::BlendMethod blend_method(get_blend_method());
        int steps = duplicate_param->count_steps(time_cur);
 
+       Mutex::Lock lock(mutex);
        duplicate_param->reset_index(time_cur);
        do
        {
@@ -185,7 +186,7 @@ Layer_Duplicate::accelerated_render(Context context,Surface *surface,int quality
                Surface::alpha_pen apen(surface->begin());
                apen.set_alpha(1.0);
                // \todo have a checkbox allowing use of 'behind' to reverse the order?
-               apen.set_blend_method(blend_method);
+               apen.set_blend_method(i ? blend_method : Color::BLEND_COMPOSITE);
                tmp.blit_to(apen);
                i++;
        } while (duplicate_param->step(time_cur));