:lol
![laff out loud :lol](./images/smilies/lol.gif)
"You do not need to be a C programmer".
You need to know the C syntax, you need to know how to compile the thing, you need to know how to understand errors and fix them.
I appreciate the effort, but so far it looks like "I cobbled some C code and eventually made it to work", and doesn't explain why or how things work. The only thing I learned from your example is that there is potentially a way to have one input and redirect it to several node inputs (on same node or on other nodes).
But looking at implementing
this effect as a GEGL op, I'm still left with many questions: how do I apply vivid-light? How do I "scale" an input signal before I give it to a node input, and more generally how do I algebraically combine several inputs to make one input? how do I compile the code separately from the whole of GEGL (and other folks would also wonder where they put the compiled result without polluting the "official" GEGL code(*))?
(*) On Linux it's in ~/.local/share/gegl-0.4/plug-ins/ it seems