Blender Git Loki
Git Commits -> Revision 8c1536d
Revision 8c1536d by Sergey Sharybin (temp-depsgraph-layers) March 20, 2017, 18:44 (GMT) |
Blender 2.8: Initial hook of layer collections evaluation in DEG This moves selectability/visibility flag flush from some hardcoded places in the code to depsgraph. This way it is possible to simply tag depsgraph to update those flags and rest it'll do on it's own. Using depsgraph for such flush is an overkill: those flags are fully static and can not be animated, so it doesn't really make sense to hook only those to depsgraph. However, in the future we will have overrides on collections, which ideally would need to be animatable and drivable and easiest way to support this is to do this on depsgraph level, so it ensures proper order of evaluation for animation and drivers. And it seems logical to do both overrides and flags flush from depsgraph from this point of view. This commit lacks two things: 1. Proper flag for DAG_id_tag_update(), so currently the only way to inform depsgraph about nered to flush visiblity/selectability flags is to tag scene ID for update. Flag of 0 will to the trick for now. 2. Any operation which changes layer collections or render layers need to tag relations to update. This is not done, so any change to those will cause crash. |
Commit Details:
Full Hash: 8c1536d326ccb6e5f3b7e32384a88cec743efd73
Parent Commit: b0feb06
Committed By: Dalai Felinto
Lines Changed: +410, -25
2 Added Paths:
/source/blender/depsgraph/intern/builder/deg_builder_nodes_layer.cc (+120, -0) (View)
/source/blender/depsgraph/intern/builder/deg_builder_relations_layer.cc (+134, -0) (View)
/source/blender/depsgraph/intern/builder/deg_builder_relations_layer.cc (+134, -0) (View)
15 Modified Paths:
/source/blender/blenkernel/BKE_layer.h (+11, -0) (Diff)
/source/blender/blenkernel/intern/layer.c (+63, -0) (Diff)
/source/blender/depsgraph/CMakeLists.txt (+2, -0) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes.h (+12, -0) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc (+3, -0) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.h (+15, -0) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc (+3, -0) (Diff)
/source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc (+11, -9) (Diff)
/source/blender/depsgraph/intern/depsgraph_types.h (+7, -0) (Diff)
/source/blender/depsgraph/intern/depsgraph_type_defines.cc (+4, -0) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.cc (+7, -0) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.h (+4, -0) (Diff)
/source/blender/editors/space_outliner/outliner_draw.c (+3, -5) (Diff)
/source/blender/makesdna/DNA_layer_types.h (+3, -1) (Diff)
/source/blender/makesrna/intern/rna_scene.c (+8, -10) (Diff)
/source/blender/blenkernel/intern/layer.c (+63, -0) (Diff)
/source/blender/depsgraph/CMakeLists.txt (+2, -0) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes.h (+12, -0) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc (+3, -0) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.h (+15, -0) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations_scene.cc (+3, -0) (Diff)
/source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc (+11, -9) (Diff)
/source/blender/depsgraph/intern/depsgraph_types.h (+7, -0) (Diff)
/source/blender/depsgraph/intern/depsgraph_type_defines.cc (+4, -0) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.cc (+7, -0) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.h (+4, -0) (Diff)
/source/blender/editors/space_outliner/outliner_draw.c (+3, -5) (Diff)
/source/blender/makesdna/DNA_layer_types.h (+3, -1) (Diff)
/source/blender/makesrna/intern/rna_scene.c (+8, -10) (Diff)