X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=diffusion_effect.cpp;h=afec9c80805490a97404d6e0c6e118759982dd9b;hp=fb78bb76a4cadfe6b4609a1f4fcddaacc565bc23;hb=95edbfccb0843da3cc105dadc5bc6d8e102f6071;hpb=85f9719bf3519b1f1942738d11601584f5d38725 diff --git a/diffusion_effect.cpp b/diffusion_effect.cpp index fb78bb7..afec9c8 100644 --- a/diffusion_effect.cpp +++ b/diffusion_effect.cpp @@ -8,10 +8,20 @@ using namespace std; +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) @@ -21,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); @@ -46,3 +57,5 @@ string OverlayMatteEffect::output_fragment_shader() { return read_file("overlay_matte_effect.frag"); } + +} // namespace movit