Page MenuHome

Extensible Architecture Refactoring
Confirmed, NormalPublicDESIGN

Description

The goal of these tasks is to make core Blender data structures more extensible and object-oriented.

See the proposal in the developer wiki for details.

Datablocks

Extend IDTypeInfo usage and functionality to abstract ID handling in more areas.

  • lib_query.c for relations to other datablocks (T74960)
  • Find other cases where hardcoded ID type tests are spread throughout the code
.blend I/O

Decentralize .blend file I/O code, with a well documented API (T76372).
Automate lib linking and expand using lib query?

RNA
  • Add mechanism to register RNA at runtime
  • Use it for important case including:
    • Nodes
    • ...
  • Use for all data structures (long term)
DNA

We still need to work out design for how to register DNA at runtime, this is more of a long term goal.

UI
  • Modifiers, shader effects move from Python to callback on modifier typeinfo (modifier-panels-ui branch)
  • Nodes UI move from drawnode.c to callback on node typeinfo
    • Geometry / Function nodes
    • Shader nodes
    • Compositor nodes
Dependency Graph

We still need to work out design for how to decentralize depsgraph building, this is more of a long term goal.

Event Timeline

Brecht Van Lommel (brecht) changed the task status from Needs Triage to Confirmed.Apr 14 2020, 1:45 PM
Brecht Van Lommel (brecht) created this task.
Bastien Montagne (mont29) changed the subtype of this task from "Report" to "Design".Apr 22 2020, 12:18 PM