X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=diffusion_effect.cpp;fp=diffusion_effect.cpp;h=afec9c80805490a97404d6e0c6e118759982dd9b;hp=145eaf695860608040afec87bc0120eb08188c6d;hb=1b46606b3c5d6a7a97528a53d0309d3cd04df62b;hpb=da8dfcce3a52f2de180ead1dd315f6e6cac5fef2 diff --git a/diffusion_effect.cpp b/diffusion_effect.cpp index 145eaf6..afec9c8 100644 --- a/diffusion_effect.cpp +++ b/diffusion_effect.cpp @@ -12,10 +12,18 @@ namespace movit { DiffusionEffect::DiffusionEffect() : blur(new BlurEffect), - overlay_matte(new OverlayMatteEffect) + overlay_matte(new OverlayMatteEffect), + owns_overlay_matte(true) { } +DiffusionEffect::~DiffusionEffect() +{ + if (owns_overlay_matte) { + delete overlay_matte; + } +} + void DiffusionEffect::rewrite_graph(EffectChain *graph, Node *self) { assert(self->incoming_links.size() == 1); @@ -23,6 +31,7 @@ void DiffusionEffect::rewrite_graph(EffectChain *graph, Node *self) Node *blur_node = graph->add_node(blur); Node *overlay_matte_node = graph->add_node(overlay_matte); + owns_overlay_matte = false; graph->replace_receiver(self, overlay_matte_node); graph->connect_nodes(input, blur_node); graph->connect_nodes(blur_node, overlay_matte_node);