Blender Git Commit Log

Git Commits -> Revision 37166ac

Revision 37166ac by Lukas Toenne (depsgraph_refactor)
April 7, 2014, 16:09 (GMT)
First steps towards a 2-pass builder system.

Idea is to separate the construction of nodes from the declaration of
relations between them. This gives a cleaner structure and allows better
error handling.

Two "builder" classes define the API for each build pass. This way the
context variables (graph) can be accessed during building without having
to pass them explicitly to every function.

Specifying nodes in the relations pass works using keys rather than
direct node pointers. This way the builder can perform error handling
if one or both ends of the relation don't exist. Keys also don't require
all the details necessary for actual construction of nodes
(e.g. operation callback functions, description strings). This avoids
redundant or conflicting information in graph->get_node calls and
simplifies the code.

Old build code has been moved to a (not included) source file
depsgraph_build_deprecated.c to make porting more manageable.

Commit Details:

Full Hash: 37166ac2e81bda20ccca1d88af0911ec9df21ca8
Parent Commit: 8b9ba7e
Lines Changed: +2234, -1336

2 Added Paths:

/source/blender/depsgraph/intern/depsgraph_build.h (+144, -0) (View)
/source/blender/depsgraph/intern/depsgraph_build_deprecated.cpp (+1609, -0) (View)

5 Modified Paths:

/source/blender/depsgraph/CMakeLists.txt (+1, -0) (Diff)
/source/blender/depsgraph/intern/depsgraph.cpp (+1, -1) (Diff)
/source/blender/depsgraph/intern/depsgraph.h (+9, -52) (Diff)
/source/blender/depsgraph/intern/depsgraph_build.cpp (+420, -1283) (Diff)
/source/blender/depsgraph/intern/depsgraph_types.h (+50, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021