[Bf-committers] Some Ideas for a Blender Plugin System

matmenu matmenu at live.fr
Mon Nov 2 22:06:08 CET 2015


Hi Martin,

Sounds really good and needed as reality showed that being GPL is not 
enough to make adding functionality easy. Looks also like all devs loose 
to much time reviewing, so c/c++ plugins are a really good solution to 
avoid so many modifiers die in the patch tracker or be limited to some 
custom builds like in past year. I hope you get some help to make it a 
reality!

Regards,
Mat

Am 01/11/2015 um 16:11 schrieb Martin Felke:
> Hi, today i was thinking a bit about possible approaches on how to
> add a C / C++ Plugin system to blender.
> This is a short (a bit unsorted) list of my thoughts and might serve as
> discussion start point perhaps.
>
> Blender Plugin System
> ---------------------
>       
> - Idea: Have a modularized approach, add C/C++ to core without
>    modifying it later
> - track presence of modules and status (OK, Not Functional, Changed)
> - store Plugin Data separately from Blend (e.g. FM simulation /
>    shard data), so core can start with basic blend only if plugin is
>    absent can try to load plugin while loading data
>      
> - dynamic compilation of module sources via Python / CFFI or LLVM,
>    as in OSL Nodes
> - access core api thru bpy or directly thru RNA or even DNA
> - source distribution of plugins is C / C++  + some py Wrapper
>    for autocompile or binary distribution in case no compiler is present
> - plugins have certain structure and versions for all OS;
>    Hash, Version, source, binaries
> - should be installable and activatable like addons
>       
> - pack CFFI and distutils to python distro of blender
> - windows fix: declspec, symbol export so linking will work
>       
> - plugin development addon: provide DNA / RNA headers
>    (and C sources or precompiled stuff) + project generators
>    for standard IDEs, to give a starting point for plugin devs
>       
> - core support: - Plugin Management system which handles plugins
>                  - modify ID and Non-ID base structures to include
> 		  info about plugin origin
>                  - save,load data per plugin / chunked
> 		  (and bundle differently together)
>                  - plugin crash handler
> 		  (so not the entire core goes down with a
> 		  failing plugin)
>
> - plugins should expose py api too, so addons can build upon them too
> - plugin repos and updating / automatic compilation system
>    (after update) ?
>
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers



More information about the Bf-committers mailing list