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
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/depsgraph/intern/node/deg_node_component.h')
-rw-r--r--source/blender/depsgraph/intern/node/deg_node_component.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/source/blender/depsgraph/intern/node/deg_node_component.h b/source/blender/depsgraph/intern/node/deg_node_component.h
index 38ea4005a72..ca37401d200 100644
--- a/source/blender/depsgraph/intern/node/deg_node_component.h
+++ b/source/blender/depsgraph/intern/node/deg_node_component.h
@@ -26,10 +26,11 @@
#include "intern/node/deg_node.h"
#include "intern/node/deg_node_operation.h"
+#include "BLI_ghash.h"
+#include "BLI_hash.hh"
#include "BLI_string.h"
#include "BLI_utildefines.h"
-struct GHash;
struct ID;
struct bPoseChannel;
@@ -115,7 +116,7 @@ struct ComponentNode : public Node {
/* Operations stored as a hash map, for faster build.
* This hash map will be freed when graph is fully built. */
- GHash *operations_map;
+ Map<ComponentNode::OperationIDKey, OperationNode *> *operations_map;
/* This is a "normal" list of operations, used by evaluation
* and other routines after construction. */
@@ -190,6 +191,7 @@ DEG_COMPONENT_NODE_DECLARE_GENERIC(Synchronization);
DEG_COMPONENT_NODE_DECLARE_GENERIC(Audio);
DEG_COMPONENT_NODE_DECLARE_GENERIC(Armature);
DEG_COMPONENT_NODE_DECLARE_GENERIC(GenericDatablock);
+DEG_COMPONENT_NODE_DECLARE_GENERIC(Simulation);
/* Bone Component */
struct BoneComponentNode : public ComponentNode {
@@ -203,3 +205,18 @@ struct BoneComponentNode : public ComponentNode {
void deg_register_component_depsnodes();
} // namespace DEG
+
+namespace BLI {
+
+template<> struct DefaultHash<DEG::ComponentNode::OperationIDKey> {
+ uint32_t operator()(const DEG::ComponentNode::OperationIDKey &key) const
+ {
+ const int opcode_as_int = static_cast<int>(key.opcode);
+ return BLI_ghashutil_combine_hash(
+ key.name_tag,
+ BLI_ghashutil_combine_hash(BLI_ghashutil_uinthash(opcode_as_int),
+ BLI_ghashutil_strhash_p(key.name)));
+ }
+};
+
+} // namespace BLI