add_operation_node(cache_comp,
function_bind(BKE_object_eval_cloth,
_1,
- scene,
- object),
+ scene_cow,
+ object_cow),
- DEG_OPCODE_PLACEHOLDER,
- "Cloth Modifier");
+ DEG_OPCODE_GEOMETRY_CLOTH_MODIFIER);
}
/* Shapekeys */
DEG_OPCODE_MASK_EVAL);
}
-void DepsgraphNodeBuilder::build_movieclip(MovieClip *clip) {
+void DepsgraphNodeBuilder::build_movieclip(MovieClip *clip)
+{
ID *clip_id = &clip->id;
- add_id_node(clip_id);
+ /* Animation. */
build_animdata(clip_id);
+ /* Movie clip evaluation. */
+ add_operation_node(clip_id,
+ DEG_NODE_TYPE_PARAMETERS,
+ function_bind(BKE_movieclip_eval_update, _1, clip),
+ DEG_OPCODE_MOVIECLIP_EVAL);
}
+void DepsgraphNodeBuilder::build_lightprobe(Object *object)
+{
+ LightProbe *probe = (LightProbe *)object->data;
+ ID *probe_id = &probe->id;
+ if (probe_id->tag & LIB_TAG_DOIT) {
+ return;
+ }
+ probe_id->tag |= LIB_TAG_DOIT;
+ /* Placeholder so we can add relations and tag ID node for update. */
+ add_operation_node(probe_id,
+ DEG_NODE_TYPE_PARAMETERS,
+ NULL,
+ DEG_OPCODE_PLACEHOLDER,
+ "LightProbe Eval");
+
+ add_operation_node(&object->id,
+ DEG_NODE_TYPE_PARAMETERS,
+ NULL,
+ DEG_OPCODE_PLACEHOLDER,
+ "LightProbe Eval");
+
+ build_animdata(probe_id);
+}
+
} // namespace DEG
/* Masks. */
STRINGIFY_OPCODE(MASK_ANIMATION);
STRINGIFY_OPCODE(MASK_EVAL);
+ /* Collections. */
+ STRINGIFY_OPCODE(SCENE_LAYER_INIT);
+ STRINGIFY_OPCODE(SCENE_LAYER_EVAL);
+ STRINGIFY_OPCODE(SCENE_LAYER_DONE);
+ /* Copy on write. */
+ STRINGIFY_OPCODE(COPY_ON_WRITE);
/* Shading. */
STRINGIFY_OPCODE(SHADING);
+ STRINGIFY_OPCODE(MATERIAL_UPDATE);
+ STRINGIFY_OPCODE(WORLD_UPDATE);
+ /* Movie clip. */
+ STRINGIFY_OPCODE(MOVIECLIP_EVAL);
case DEG_NUM_OPCODES: return "SpecialCase";
#undef STRINGIFY_OPCODE
/* Shading. ------------------------------------------- */
DEG_OPCODE_SHADING,
+ DEG_OPCODE_MATERIAL_UPDATE,
+ DEG_OPCODE_WORLD_UPDATE,
- /* Masks ------------------------------------------- */
+ /* Masks. ------------------------------------------ */
DEG_OPCODE_MASK_ANIMATION,
DEG_OPCODE_MASK_EVAL,