diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-04-29 15:19:56 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-04-30 12:32:02 +0300 |
commit | d7e2fe275d0c575ca20216f5534d85fb8bf6a2dc (patch) | |
tree | 2d5bb2999fe353b288e4058d90a98669f5298e85 /source/blender/depsgraph/intern/builder/deg_builder.h | |
parent | 6bbb82cf79e03cf96947933da292d2666bf81dd6 (diff) |
Depsgraph: build bbone operation if bone segments has animation
This is a part of T61296: Crash with animated b-bone segments.
Consider animated/driven bendy bones segments as something what requires
special bendy-bones operation and relation in the dependency graph.
This is because it is more beneficial from a performance point of view
to not build operations if they are not needed. But if the property is
animated it is not possible to make any reliable decision based on just
a property value.
Differential Revision: https://developer.blender.org/D4739
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder.h')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder.h b/source/blender/depsgraph/intern/builder/deg_builder.h index 2f5bc42aeae..224e3212d57 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder.h +++ b/source/blender/depsgraph/intern/builder/deg_builder.h @@ -23,8 +23,10 @@ #pragma once +struct bPoseChannel; struct Base; struct Main; +struct Object; namespace DEG { @@ -35,6 +37,10 @@ class DepsgraphBuilder { public: bool need_pull_base_into_graph(Base *base); + bool check_pchan_has_bbone(Object *object, const bPoseChannel *pchan); + bool check_pchan_has_bbone_segments(Object *object, const bPoseChannel *pchan); + bool check_pchan_has_bbone_segments(Object *object, const char *bone_name); + protected: /* NOTE: The builder does NOT take ownership over any of those resources. */ DepsgraphBuilder(Main *bmain, Depsgraph *graph, DepsgraphBuilderCache *cache); @@ -46,6 +52,6 @@ class DepsgraphBuilder { }; bool deg_check_base_in_depsgraph(const Depsgraph *graph, Base *base); -void deg_graph_build_finalize(struct Main *bmain, struct Depsgraph *graph); +void deg_graph_build_finalize(Main *bmain, Depsgraph *graph); } // namespace DEG |