April 9, 2014, 14:59 (GMT) |
Ported compositor build function. |
April 9, 2014, 14:43 (GMT) |
Ported build functions for textures, materials and node trees. |
April 9, 2014, 13:14 (GMT) |
World node building. |
April 9, 2014, 12:01 (GMT) |
Splitting off main construction logic from depsgraph_build.cpp. The original source file now only contains general functions for the builder classes. The actual logic for building the nodes/relations from a scene is in depsgraph_build_nodes/depsgraph_build_relations now. This helps navigation and keeps the code in those files concerned only with the actual inspection of DNA data. |
April 9, 2014, 11:39 (GMT) |
Call animdata/driver build functions for objects and object data IDs. |
April 9, 2014, 11:26 (GMT) |
Build nodes and relations for animdata and drivers. |
April 9, 2014, 09:21 (GMT) |
Time source registration logic added to DepsgraphNodeBuilder (as far as it exists at this point). The goal is to remove all add_to_graph functionality from the invidiual node classes eventually and add this to the respective owner node types. Doing this in the builder classes is just temporary atm. |
April 9, 2014, 08:21 (GMT) |
Added back the root node construction to the depsgraph build function. |
April 9, 2014, 05:55 (GMT) |
Fix incomplete info for operation keys. Operations are stored by name keys (multiple operations of the same type can exist in the same component, currently e.g. in rigid body components using multiple world build/sync operations). To keep name strings manageable for now use string constants for the existing operations, instead of literals used only in the build methods (compiler then helps avoid mismatches). Every operation type is also directly associated to a specific component type. This was previously done only implicitly via the add_to_graph functions. Now the associated component type is directly accessible from node factory type information, so we can use a simple id+operation name key when building the graph, and don't need hidden factorization inside the graph->find_node method (deprecated code to be removed later). |
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. |
April 7, 2014, 15:44 (GMT) |
Cleanup: Replace invalid NULL for empty strings by "". |
April 7, 2014, 15:43 (GMT) |
New utility class IDPtr/ConstIDPtr for handling ID subtypes. This supports implicit casting from ID C subtypes (e.g. Scene, Object) to plain ID without having to access &xxx->id or do explicit casts every time. Also could provide upcast facilities later and possibly assert based on the ID name prefix. |
April 2, 2014, 08:31 (GMT) |
Merge branch 'depsgraph_refactor' into depsgraph_refactor_cpp |
April 2, 2014, 08:31 (GMT) |
Merge branch 'master' into depsgraph_refactor Conflicts: source/blender/makesrna/intern/rna_scene.c |
March 31, 2014, 12:13 (GMT) |
get_operation function in component nodes now takes the same extra arguments as the add_operation function in Depsgraph. |
March 31, 2014, 10:17 (GMT) |
Renamed create_*_node functions to get_*_node, following same naming scheme as depgraph uses for generic node creation methods. Conflicts: source/blender/depsgraph/intern/depsgraph.cpp source/blender/depsgraph/intern/depsgraph.h source/blender/depsgraph/intern/depsnode.cpp source/blender/depsgraph/intern/depsnode.h source/blender/depsgraph/intern/depsnode_component.cpp source/blender/depsgraph/intern/depsnode_component.h |
March 31, 2014, 10:15 (GMT) |
Properly register components and operations in the hash maps. |
March 31, 2014, 10:15 (GMT) |
Complementary remove/clear functions for the component/operations hierarchy nodes. Conflicts: source/blender/depsgraph/intern/depsgraph.h source/blender/depsgraph/intern/depsnode_component.h |
March 31, 2014, 10:06 (GMT) |
Added new functions for directly creating components and operations in their respective owner nodes. This will be used instead of creating them via graph functions, which need to do ugly global lookups. Conflicts: source/blender/depsgraph/intern/depsnode_component.cpp source/blender/depsgraph/intern/depsnode_component.h |
March 31, 2014, 09:34 (GMT) |
Cleanup: Use std::string instead of char arrays/pointers. A utility function string_format has been added util_string to implement sprintf-like functionality and avoid using the moronic stringstream crap. |
|