Revert "Depsgraph: refresh RNA that doesn't need a full rebuild"
This reverts commit b4b745b720.
This was causing a problem in 01_025_A.anim.blend from the Spring
production files, where selecting one of Autumn's bones would
result in character jumping back to the origin.
This commit is contained in:
@@ -2137,8 +2137,7 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDDepsNode *id_node
|
||||
*/
|
||||
OperationDepsNode *op_entry = comp_node->get_entry_operation();
|
||||
if (op_entry != NULL) {
|
||||
DepsRelation *rel = graph_->add_new_relation(op_cow, op_entry, "CoW Dependency");
|
||||
rel->flag |= DEPSREL_FLAG_NO_FLUSH;
|
||||
graph_->add_new_relation(op_cow, op_entry, "CoW Dependency");
|
||||
}
|
||||
/* All dangling operations should also be executed after copy-on-write. */
|
||||
GHASH_FOREACH_BEGIN(OperationDepsNode *, op_node, comp_node->operations_map)
|
||||
@@ -2162,8 +2161,7 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDDepsNode *id_node
|
||||
}
|
||||
}
|
||||
if (!has_same_comp_dependency) {
|
||||
DepsRelation *rel_sub = graph_->add_new_relation(op_cow, op_node, "CoW Dependency");
|
||||
rel_sub->flag |= DEPSREL_FLAG_NO_FLUSH;
|
||||
graph_->add_new_relation(op_cow, op_node, "CoW Dependency");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -397,10 +397,6 @@ typedef enum ID_Type {
|
||||
ID_IS_STATIC_OVERRIDE((_id)) && \
|
||||
(((ID *)(_id))->override_static->flag & STATICOVERRIDE_AUTO))
|
||||
|
||||
/* No copy-on-write for these types. */
|
||||
#define ID_TYPE_IS_COW(_id_type) \
|
||||
(!ELEM(_id_type, ID_WM, ID_SCR, ID_SCRN, ID_IM, ID_MC, ID_LI))
|
||||
|
||||
#ifdef GS
|
||||
# undef GS
|
||||
#endif
|
||||
|
||||
@@ -2075,12 +2075,6 @@ static void rna_property_update(bContext *C, Main *bmain, Scene *scene, PointerR
|
||||
/* we could add NULL check, for now don't */
|
||||
WM_msg_publish_rna(mbus, ptr, prop);
|
||||
}
|
||||
if (ptr->id.data != NULL) {
|
||||
const short id_type = GS(((ID *)ptr->id.data)->name);
|
||||
if (ID_TYPE_IS_COW(id_type)) {
|
||||
DEG_id_tag_update(ptr->id.data, DEG_TAG_COPY_ON_WRITE);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user