[Bf-committers] VSE Strip-Wise Rendering
dan at trollwerks.org
Sat Oct 2 01:02:14 CEST 2010
On Fri, Oct 1, 2010 at 3:03 PM, Leo Sutic <leo.sutic at gmail.com> wrote:
> Libplugin assumes that the application has extension points where
> plugins can be added. Each extension point can have, if I understand the
> docs and illustrations right, *one* plugin; since the function pointer
> that is the extension point can only point to one place.
Not really, that's just one of the things it can do.
Join-points have a stack that can call the next function down the stack
(which can call the next one & etc) which could be used to reproduce the
imbuf image loading function (try all the image loaders until one succeeds)
> We need for each extension point to have more than one plugin, and to be
> able to identify and select between them at runtime.
You can get a plugin loaded into a function list like node or operator (or
the current plugin system) loading functions pretty easily, just needs a
custom loading function.
In (evil) xml it would be something like <texture symbol="foo"> where the
parser would call the plugin loader function pointer on the "texture" struct
which in this case would probably fetch the symbol 'foo' and register it
with blender's texture function.
Or something different, whatever you like.
The key is that when it sees 'texture' it finds a struct named 'texture' in
the list and uses that to parse the xml node so you can hang all sorts of
different functionality off the basic library.
Like I was saying, the libffi (aspect) stuff is just cowbell...
More information about the Bf-committers