X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=blur_effect.cpp;h=f5d9927d35a56d4039f3ed940a7f54ebaee198f7;hp=c8cf539e0542a3184d9f6d1f1d7d23acc77752d6;hb=e655afd53f2e56938bd4e7f72640eff56ef4a1ee;hpb=fdad0932f08649e69e824ee73a787671a5bc93a5 diff --git a/blur_effect.cpp b/blur_effect.cpp index c8cf539..f5d9927 100644 --- a/blur_effect.cpp +++ b/blur_effect.cpp @@ -2,6 +2,7 @@ #include #include "blur_effect.h" +#include "effect_chain.h" #include "util.h" #include "opengl.h" @@ -19,14 +20,14 @@ BlurEffect::BlurEffect() update_radius(); } -void BlurEffect::add_self_to_effect_chain(EffectChain *chain, const std::vector &inputs) +void BlurEffect::rewrite_graph(EffectChain *graph, Node *self) { - assert(inputs.size() == 1); - hpass->add_self_to_effect_chain(chain, inputs); - - std::vector vpass_inputs; - vpass_inputs.push_back(hpass); - vpass->add_self_to_effect_chain(chain, vpass_inputs); + Node *hpass_node = graph->add_node(hpass); + Node *vpass_node = graph->add_node(vpass); + graph->connect_nodes(hpass_node, vpass_node); + graph->replace_receiver(self, hpass_node); + graph->replace_sender(self, vpass_node); + self->disabled = true; } void BlurEffect::update_radius()