Merge branch 'master' into blender2.8
This commit is contained in:
@@ -189,10 +189,6 @@ void BKE_object_eval_constraints(struct EvaluationContext *eval_ctx,
|
||||
struct Object *ob);
|
||||
void BKE_object_eval_done(struct EvaluationContext *eval_ctx, struct Object *ob);
|
||||
|
||||
void BKE_object_eval_modifier(struct EvaluationContext *eval_ctx,
|
||||
struct Scene *scene,
|
||||
struct Object *ob,
|
||||
struct ModifierData *md);
|
||||
void BKE_object_eval_uber_transform(struct EvaluationContext *eval_ctx,
|
||||
struct Scene *scene,
|
||||
struct Object *ob);
|
||||
|
||||
@@ -142,18 +142,6 @@ void BKE_object_eval_done(EvaluationContext *UNUSED(eval_ctx), Object *ob)
|
||||
else ob->transflag &= ~OB_NEG_SCALE;
|
||||
}
|
||||
|
||||
void BKE_object_eval_modifier(struct EvaluationContext *eval_ctx,
|
||||
struct Scene *scene,
|
||||
struct Object *ob,
|
||||
struct ModifierData *md)
|
||||
{
|
||||
DEBUG_PRINT("%s on %s\n", __func__, ob->id.name);
|
||||
(void) eval_ctx; /* Ignored. */
|
||||
(void) scene; /* Ignored. */
|
||||
(void) ob; /* Ignored. */
|
||||
(void) md; /* Ignored. */
|
||||
}
|
||||
|
||||
void BKE_object_handle_data_update(EvaluationContext *eval_ctx,
|
||||
Scene *scene,
|
||||
Object *ob)
|
||||
|
||||
@@ -753,17 +753,8 @@ void DepsgraphNodeBuilder::build_obdata_geom(Scene *scene, Object *ob)
|
||||
|
||||
// TODO: "Done" operation
|
||||
|
||||
/* Modifiers */
|
||||
/* Cloyth modifier. */
|
||||
LINKLIST_FOREACH (ModifierData *, md, &ob->modifiers) {
|
||||
add_operation_node(&ob->id,
|
||||
DEG_NODE_TYPE_GEOMETRY,
|
||||
function_bind(BKE_object_eval_modifier,
|
||||
_1,
|
||||
scene,
|
||||
ob,
|
||||
md),
|
||||
DEG_OPCODE_GEOMETRY_MODIFIER,
|
||||
md->name);
|
||||
if (md->type == eModifierType_Cloth) {
|
||||
build_cloth(scene, ob);
|
||||
}
|
||||
|
||||
@@ -995,21 +995,12 @@ void DepsgraphRelationBuilder::build_driver(ID *id, FCurve *fcu)
|
||||
}
|
||||
}
|
||||
else if (GS(id->name) == ID_OB && strstr(rna_path, "modifiers[")) {
|
||||
/* modifier driver - connect directly to the modifier */
|
||||
char *modifier_name = BLI_str_quoted_substrN(rna_path, "modifiers[");
|
||||
if (modifier_name) {
|
||||
OperationKey modifier_key(id,
|
||||
DEG_NODE_TYPE_GEOMETRY,
|
||||
DEG_OPCODE_GEOMETRY_MODIFIER,
|
||||
modifier_name);
|
||||
if (has_node(modifier_key)) {
|
||||
add_relation(driver_key, modifier_key, "[Driver -> Modifier]");
|
||||
}
|
||||
else {
|
||||
printf("Unexisting driver RNA path: %s\n", rna_path);
|
||||
}
|
||||
|
||||
MEM_freeN(modifier_name);
|
||||
OperationKey modifier_key(id, DEG_NODE_TYPE_GEOMETRY, DEG_OPCODE_GEOMETRY_UBEREVAL);
|
||||
if (has_node(modifier_key)) {
|
||||
add_relation(driver_key, modifier_key, "[Driver -> Modifier]");
|
||||
}
|
||||
else {
|
||||
printf("Unexisting driver RNA path: %s\n", rna_path);
|
||||
}
|
||||
}
|
||||
else if (GS(id->name) == ID_KE && strstr(rna_path, "key_blocks[")) {
|
||||
@@ -1326,7 +1317,7 @@ void DepsgraphRelationBuilder::build_particles(Scene *scene, Object *ob)
|
||||
|
||||
void DepsgraphRelationBuilder::build_cloth(Scene * /*scene*/,
|
||||
Object *object,
|
||||
ModifierData *md)
|
||||
ModifierData * /*md*/)
|
||||
{
|
||||
OperationKey cache_key(&object->id,
|
||||
DEG_NODE_TYPE_CACHE,
|
||||
@@ -1335,8 +1326,7 @@ void DepsgraphRelationBuilder::build_cloth(Scene * /*scene*/,
|
||||
/* Cache component affects on modifier. */
|
||||
OperationKey modifier_key(&object->id,
|
||||
DEG_NODE_TYPE_GEOMETRY,
|
||||
DEG_OPCODE_GEOMETRY_MODIFIER,
|
||||
md->name);
|
||||
DEG_OPCODE_GEOMETRY_UBEREVAL);
|
||||
add_relation(cache_key, modifier_key, "Cloth Cache -> Cloth");
|
||||
}
|
||||
|
||||
@@ -1399,24 +1389,16 @@ void DepsgraphRelationBuilder::build_obdata_geom(Main *bmain, Scene *scene, Obje
|
||||
add_relation(obdata_geom_key, geom_key, "Object Geometry Base Data");
|
||||
|
||||
/* Modifiers */
|
||||
if (ob->modifiers.first) {
|
||||
OperationKey prev_mod_key;
|
||||
if (ob->modifiers.first != NULL) {
|
||||
OperationKey obdata_ubereval_key(&ob->id,
|
||||
DEG_NODE_TYPE_GEOMETRY,
|
||||
DEG_OPCODE_GEOMETRY_UBEREVAL);
|
||||
|
||||
LINKLIST_FOREACH (ModifierData *, md, &ob->modifiers) {
|
||||
const ModifierTypeInfo *mti = modifierType_getInfo((ModifierType)md->type);
|
||||
OperationKey mod_key(&ob->id, DEG_NODE_TYPE_GEOMETRY, DEG_OPCODE_GEOMETRY_MODIFIER, md->name);
|
||||
|
||||
if (md->prev) {
|
||||
/* Stack relation: modifier depends on previous modifier in the stack */
|
||||
add_relation(prev_mod_key, mod_key, "Modifier Stack");
|
||||
}
|
||||
else {
|
||||
/* Stack relation: first modifier depends on the geometry. */
|
||||
add_relation(geom_init_key, mod_key, "Modifier Stack");
|
||||
}
|
||||
|
||||
if (mti->updateDepsgraph) {
|
||||
DepsNodeHandle handle = create_node_handle(mod_key);
|
||||
DepsNodeHandle handle = create_node_handle(obdata_ubereval_key);
|
||||
mti->updateDepsgraph(
|
||||
md,
|
||||
bmain,
|
||||
@@ -1427,7 +1409,7 @@ void DepsgraphRelationBuilder::build_obdata_geom(Main *bmain, Scene *scene, Obje
|
||||
|
||||
if (BKE_object_modifier_use_time(ob, md)) {
|
||||
TimeSourceKey time_src_key;
|
||||
add_relation(time_src_key, mod_key, "Time Source");
|
||||
add_relation(time_src_key, obdata_ubereval_key, "Time Source");
|
||||
|
||||
/* Hacky fix for T45633 (Animated modifiers aren't updated)
|
||||
*
|
||||
@@ -1437,15 +1419,13 @@ void DepsgraphRelationBuilder::build_obdata_geom(Main *bmain, Scene *scene, Obje
|
||||
/* XXX: Remove this hack when these links are added as part of build_animdata() instead */
|
||||
if (modifier_dependsOnTime(md) == false && needs_animdata_node(&ob->id)) {
|
||||
ComponentKey animation_key(&ob->id, DEG_NODE_TYPE_ANIMATION);
|
||||
add_relation(animation_key, mod_key, "Modifier Animation");
|
||||
add_relation(animation_key, obdata_ubereval_key, "Modifier Animation");
|
||||
}
|
||||
}
|
||||
|
||||
if (md->type == eModifierType_Cloth) {
|
||||
build_cloth(scene, ob, md);
|
||||
}
|
||||
|
||||
prev_mod_key = mod_key;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1471,14 +1451,7 @@ void DepsgraphRelationBuilder::build_obdata_geom(Main *bmain, Scene *scene, Obje
|
||||
if (ob->type != OB_ARMATURE) {
|
||||
/* Armatures does no longer require uber node. */
|
||||
OperationKey obdata_ubereval_key(&ob->id, DEG_NODE_TYPE_GEOMETRY, DEG_OPCODE_GEOMETRY_UBEREVAL);
|
||||
if (ob->modifiers.last) {
|
||||
ModifierData *md = (ModifierData *)ob->modifiers.last;
|
||||
OperationKey mod_key(&ob->id, DEG_NODE_TYPE_GEOMETRY, DEG_OPCODE_GEOMETRY_MODIFIER, md->name);
|
||||
add_relation(mod_key, obdata_ubereval_key, "Object Geometry UberEval");
|
||||
}
|
||||
else {
|
||||
add_relation(geom_init_key, obdata_ubereval_key, "Object Geometry UberEval");
|
||||
}
|
||||
add_relation(geom_init_key, obdata_ubereval_key, "Object Geometry UberEval");
|
||||
}
|
||||
|
||||
if (obdata->tag & LIB_TAG_DOIT) {
|
||||
|
||||
@@ -97,23 +97,17 @@ static const char *stringify_opcode(eDepsOperation_Code opcode)
|
||||
#define STRINGIFY_OPCODE(name) case DEG_OPCODE_##name: return #name
|
||||
STRINGIFY_OPCODE(OPERATION);
|
||||
STRINGIFY_OPCODE(PLACEHOLDER);
|
||||
STRINGIFY_OPCODE(NOOP);
|
||||
STRINGIFY_OPCODE(ANIMATION);
|
||||
STRINGIFY_OPCODE(DRIVER);
|
||||
//STRINGIFY_OPCODE(PROXY);
|
||||
STRINGIFY_OPCODE(TRANSFORM_LOCAL);
|
||||
STRINGIFY_OPCODE(TRANSFORM_PARENT);
|
||||
STRINGIFY_OPCODE(TRANSFORM_CONSTRAINTS);
|
||||
//STRINGIFY_OPCODE(TRANSFORM_CONSTRAINTS_INIT);
|
||||
//STRINGIFY_OPCODE(TRANSFORM_CONSTRAINT);
|
||||
//STRINGIFY_OPCODE(TRANSFORM_CONSTRAINTS_DONE);
|
||||
STRINGIFY_OPCODE(RIGIDBODY_REBUILD);
|
||||
STRINGIFY_OPCODE(RIGIDBODY_SIM);
|
||||
STRINGIFY_OPCODE(TRANSFORM_RIGIDBODY);
|
||||
STRINGIFY_OPCODE(TRANSFORM_FINAL);
|
||||
STRINGIFY_OPCODE(OBJECT_UBEREVAL);
|
||||
STRINGIFY_OPCODE(GEOMETRY_UBEREVAL);
|
||||
STRINGIFY_OPCODE(GEOMETRY_MODIFIER);
|
||||
STRINGIFY_OPCODE(GEOMETRY_PATH);
|
||||
STRINGIFY_OPCODE(POSE_INIT);
|
||||
STRINGIFY_OPCODE(POSE_DONE);
|
||||
@@ -122,9 +116,6 @@ static const char *stringify_opcode(eDepsOperation_Code opcode)
|
||||
STRINGIFY_OPCODE(BONE_LOCAL);
|
||||
STRINGIFY_OPCODE(BONE_POSE_PARENT);
|
||||
STRINGIFY_OPCODE(BONE_CONSTRAINTS);
|
||||
//STRINGIFY_OPCODE(BONE_CONSTRAINTS_INIT);
|
||||
//STRINGIFY_OPCODE(BONE_CONSTRAINT);
|
||||
//STRINGIFY_OPCODE(BONE_CONSTRAINTS_DONE);
|
||||
STRINGIFY_OPCODE(BONE_READY);
|
||||
STRINGIFY_OPCODE(BONE_DONE);
|
||||
STRINGIFY_OPCODE(PSYS_EVAL);
|
||||
|
||||
@@ -143,8 +143,6 @@ typedef enum eDepsOperation_Code {
|
||||
// XXX: Placeholder while porting depsgraph code
|
||||
DEG_OPCODE_PLACEHOLDER,
|
||||
|
||||
DEG_OPCODE_NOOP,
|
||||
|
||||
/* Animation, Drivers, etc. ------------------------ */
|
||||
|
||||
/* NLA + Action */
|
||||
@@ -153,9 +151,6 @@ typedef enum eDepsOperation_Code {
|
||||
/* Driver */
|
||||
DEG_OPCODE_DRIVER,
|
||||
|
||||
/* Proxy Inherit? */
|
||||
//DEG_OPCODE_PROXY,
|
||||
|
||||
/* Transform --------------------------------------- */
|
||||
|
||||
/* Transform entry point - local transforms only */
|
||||
@@ -166,9 +161,6 @@ typedef enum eDepsOperation_Code {
|
||||
|
||||
/* Constraints */
|
||||
DEG_OPCODE_TRANSFORM_CONSTRAINTS,
|
||||
//DEG_OPCODE_TRANSFORM_CONSTRAINTS_INIT,
|
||||
//DEG_OPCODE_TRANSFORM_CONSTRAINT,
|
||||
//DEG_OPCODE_TRANSFORM_CONSTRAINTS_DONE,
|
||||
|
||||
/* Rigidbody Sim - Perform Sim */
|
||||
DEG_OPCODE_RIGIDBODY_REBUILD,
|
||||
@@ -188,9 +180,6 @@ typedef enum eDepsOperation_Code {
|
||||
/* XXX: Placeholder - UberEval */
|
||||
DEG_OPCODE_GEOMETRY_UBEREVAL,
|
||||
|
||||
/* Modifier */
|
||||
DEG_OPCODE_GEOMETRY_MODIFIER,
|
||||
|
||||
/* Curve Objects - Path Calculation (used for path-following tools, */
|
||||
DEG_OPCODE_GEOMETRY_PATH,
|
||||
|
||||
@@ -216,9 +205,6 @@ typedef enum eDepsOperation_Code {
|
||||
|
||||
/* Constraints */
|
||||
DEG_OPCODE_BONE_CONSTRAINTS,
|
||||
//DEG_OPCODE_BONE_CONSTRAINTS_INIT,
|
||||
//DEG_OPCODE_BONE_CONSTRAINT,
|
||||
//DEG_OPCODE_BONE_CONSTRAINTS_DONE,
|
||||
|
||||
/* Bone transforms are ready
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user