Page MenuHome

Extensible Architecture Refactoring
Confirmed, NormalPublicDESIGN


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.


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).

  • API for .blend file read/write direct linking (D7061)
  • Move most direct linking code out of readfile.c
    • Datablocks
    • Modifiers (D7062)
    • Nodes
    • Animation Data (D7321)
    • Other
  • Move most lib linking and expand out of readfile.c (automate using lib query?)
  • Add mechanism to register RNA at runtime
  • Use it for important case including:
    • Nodes
    • Modifiers
  • Use for all data structures (long term)

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

  • Modifiers move from Python to callback on modifier typeinfo (modifier-panels-ui branch)
  • Nodes UI move from drawnode.c to callback on node typeinfo
Dependency Graph

We still need to work out design for how to decentralize depsgraph building, this is more 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