Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2020-02-19 20:10:35 +0300
committerBrecht Van Lommel <brecht@blender.org>2020-02-19 20:13:05 +0300
commitf0a22f5dd08561637ae3487f2d91ec566687e7c4 (patch)
treec256acdc7fcb3aa8b28f1ba27f372211760208bf /source
parentee5c13c45ccac38c20fe5e428f522d546262f1b3 (diff)
Fix T73932: modifying keyframes in nodes fails when there is an image sequence
Image animation should not be an depsgraph node of type ANIMATION, there is no need for it to be affected by the special casing for that.
Diffstat (limited to 'source')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_nodes.cc2
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations.cc5
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_rna.cc2
-rw-r--r--source/blender/depsgraph/intern/debug/deg_debug_relations_graphviz.cc1
-rw-r--r--source/blender/depsgraph/intern/node/deg_node.cc4
-rw-r--r--source/blender/depsgraph/intern/node/deg_node.h2
-rw-r--r--source/blender/depsgraph/intern/node/deg_node_component.cc2
-rw-r--r--source/blender/depsgraph/intern/node/deg_node_component.h1
8 files changed, 14 insertions, 5 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 8ec8ccb3d4d..4f70e8b0806 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -895,7 +895,7 @@ void DepsgraphNodeBuilder::build_animation_images(ID *id)
if (BKE_image_user_id_has_animation(id)) {
ID *id_cow = get_cow_id(id);
add_operation_node(id,
- NodeType::ANIMATION,
+ NodeType::IMAGE_ANIMATION,
OperationCode::IMAGE_ANIMATION,
function_bind(BKE_image_user_id_eval_animation, _1, id_cow));
}
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index 98864b11c4a..e45644f001f 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -1384,9 +1384,8 @@ void DepsgraphRelationBuilder::build_animation_images(ID *id)
{
/* TODO: can we check for existence of node for performance? */
if (BKE_image_user_id_has_animation(id)) {
- OperationKey image_animation_key(id, NodeType::ANIMATION, OperationCode::IMAGE_ANIMATION);
- ComponentKey cow_key(id, NodeType::COPY_ON_WRITE);
- add_relation(cow_key, image_animation_key, "CoW -> Image Animation");
+ OperationKey image_animation_key(
+ id, NodeType::IMAGE_ANIMATION, OperationCode::IMAGE_ANIMATION);
TimeSourceKey time_src_key;
add_relation(time_src_key, image_animation_key, "TimeSrc -> Image Animation");
}
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_rna.cc b/source/blender/depsgraph/intern/builder/deg_builder_rna.cc
index 853f8995d68..7fb92e77adf 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_rna.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_rna.cc
@@ -361,7 +361,7 @@ RNANodeIdentifier RNANodeQuery::construct_node_identifier(const PointerRNA *ptr,
}
else if (RNA_struct_is_a(ptr->type, &RNA_ImageUser)) {
if (GS(node_identifier.id->name) == ID_NT) {
- node_identifier.type = NodeType::ANIMATION;
+ node_identifier.type = NodeType::IMAGE_ANIMATION;
node_identifier.operation_code = OperationCode::IMAGE_ANIMATION;
return node_identifier;
}
diff --git a/source/blender/depsgraph/intern/debug/deg_debug_relations_graphviz.cc b/source/blender/depsgraph/intern/debug/deg_debug_relations_graphviz.cc
index b2f2359a954..b08281b755e 100644
--- a/source/blender/depsgraph/intern/debug/deg_debug_relations_graphviz.cc
+++ b/source/blender/depsgraph/intern/debug/deg_debug_relations_graphviz.cc
@@ -428,6 +428,7 @@ static void deg_debug_graphviz_node(const DebugContext &ctx, const Node *node)
case NodeType::SHADING_PARAMETERS:
case NodeType::CACHE:
case NodeType::POINT_CACHE:
+ case NodeType::IMAGE_ANIMATION:
case NodeType::LAYER_COLLECTIONS:
case NodeType::PARTICLE_SYSTEM:
case NodeType::PARTICLE_SETTINGS:
diff --git a/source/blender/depsgraph/intern/node/deg_node.cc b/source/blender/depsgraph/intern/node/deg_node.cc
index 5002f2890ae..d95e05a6f4f 100644
--- a/source/blender/depsgraph/intern/node/deg_node.cc
+++ b/source/blender/depsgraph/intern/node/deg_node.cc
@@ -100,6 +100,8 @@ const char *nodeTypeAsString(NodeType type)
return "CACHE";
case NodeType::POINT_CACHE:
return "POINT_CACHE";
+ case NodeType::IMAGE_ANIMATION:
+ return "IMAGE_ANIMATION";
case NodeType::BATCH_CACHE:
return "BATCH_CACHE";
case NodeType::DUPLI:
@@ -157,6 +159,7 @@ eDepsSceneComponentType nodeTypeToSceneComponent(NodeType type)
case NodeType::PARTICLE_SETTINGS:
case NodeType::SHADING_PARAMETERS:
case NodeType::POINT_CACHE:
+ case NodeType::IMAGE_ANIMATION:
case NodeType::BATCH_CACHE:
case NodeType::DUPLI:
case NodeType::SYNCHRONIZATION:
@@ -238,6 +241,7 @@ eDepsObjectComponentType nodeTypeToObjectComponent(NodeType type)
case NodeType::PARTICLE_SETTINGS:
case NodeType::SHADING_PARAMETERS:
case NodeType::POINT_CACHE:
+ case NodeType::IMAGE_ANIMATION:
case NodeType::BATCH_CACHE:
case NodeType::DUPLI:
case NodeType::SYNCHRONIZATION:
diff --git a/source/blender/depsgraph/intern/node/deg_node.h b/source/blender/depsgraph/intern/node/deg_node.h
index 3878362d936..ffa37341ea6 100644
--- a/source/blender/depsgraph/intern/node/deg_node.h
+++ b/source/blender/depsgraph/intern/node/deg_node.h
@@ -114,6 +114,8 @@ enum class NodeType {
SHADING_PARAMETERS,
/* Point cache Component */
POINT_CACHE,
+ /* Image Animation Component */
+ IMAGE_ANIMATION,
/* Cache Component */
/* TODO(sergey); Verify that we really need this. */
CACHE,
diff --git a/source/blender/depsgraph/intern/node/deg_node_component.cc b/source/blender/depsgraph/intern/node/deg_node_component.cc
index 334f55c0942..73f9668eb5d 100644
--- a/source/blender/depsgraph/intern/node/deg_node_component.cc
+++ b/source/blender/depsgraph/intern/node/deg_node_component.cc
@@ -349,6 +349,7 @@ DEG_COMPONENT_NODE_DEFINE(BatchCache, BATCH_CACHE, ID_RECALC_SHADING);
DEG_COMPONENT_NODE_DEFINE(Bone, BONE, ID_RECALC_GEOMETRY);
DEG_COMPONENT_NODE_DEFINE(Cache, CACHE, 0);
DEG_COMPONENT_NODE_DEFINE(CopyOnWrite, COPY_ON_WRITE, ID_RECALC_COPY_ON_WRITE);
+DEG_COMPONENT_NODE_DEFINE(ImageAnimation, IMAGE_ANIMATION, 0);
DEG_COMPONENT_NODE_DEFINE(Geometry, GEOMETRY, ID_RECALC_GEOMETRY);
DEG_COMPONENT_NODE_DEFINE(LayerCollections, LAYER_COLLECTIONS, 0);
DEG_COMPONENT_NODE_DEFINE(Parameters, PARAMETERS, 0);
@@ -383,6 +384,7 @@ void deg_register_component_depsnodes()
register_node_typeinfo(&DNTI_PARTICLE_SYSTEM);
register_node_typeinfo(&DNTI_PARTICLE_SETTINGS);
register_node_typeinfo(&DNTI_POINT_CACHE);
+ register_node_typeinfo(&DNTI_IMAGE_ANIMATION);
register_node_typeinfo(&DNTI_PROXY);
register_node_typeinfo(&DNTI_EVAL_POSE);
register_node_typeinfo(&DNTI_SEQUENCER);
diff --git a/source/blender/depsgraph/intern/node/deg_node_component.h b/source/blender/depsgraph/intern/node/deg_node_component.h
index c25f0bbd7aa..6a2157fa3b2 100644
--- a/source/blender/depsgraph/intern/node/deg_node_component.h
+++ b/source/blender/depsgraph/intern/node/deg_node_component.h
@@ -172,6 +172,7 @@ DEG_COMPONENT_NODE_DECLARE_NO_COW_TAG_ON_UPDATE(BatchCache);
DEG_COMPONENT_NODE_DECLARE_GENERIC(Cache);
DEG_COMPONENT_NODE_DECLARE_GENERIC(CopyOnWrite);
DEG_COMPONENT_NODE_DECLARE_GENERIC(Geometry);
+DEG_COMPONENT_NODE_DECLARE_GENERIC(ImageAnimation);
DEG_COMPONENT_NODE_DECLARE_GENERIC(LayerCollections);
DEG_COMPONENT_NODE_DECLARE_GENERIC(Parameters);
DEG_COMPONENT_NODE_DECLARE_GENERIC(Particles);