Hm sounds a bit problematic to me actually.. Like for example the threading part etc.? Making the system adapt to multiple ways of doing it (lock the context, create new contexts etc.) sounds like it might bloat the system pretty quick to me.. But maybe thats because I think of plugins basically in a “single-threaded” callback way similar to VST’s / AudioUnits..?
Syphon itself already feels pretty plugin-ish to me given its cross-application abilities and the ability to pipe it around as you wish. What I would have liked when I started doing this would have been a base class to reuse like [syphonTool startServerAndGlContext]; [syphonTool publishImageData:nsData];. Still maybe I am just oblivious of better and simpler ways to implement such a plugin system 🙂