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/blenkernel/BKE_node_ui_storage.hh')
-rw-r--r--source/blender/blenkernel/BKE_node_ui_storage.hh27
1 files changed, 25 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_node_ui_storage.hh b/source/blender/blenkernel/BKE_node_ui_storage.hh
index a49ff988272..be9510179c3 100644
--- a/source/blender/blenkernel/BKE_node_ui_storage.hh
+++ b/source/blender/blenkernel/BKE_node_ui_storage.hh
@@ -20,13 +20,17 @@
#include "BLI_hash.hh"
#include "BLI_map.hh"
+#include "BLI_multi_value_map.hh"
#include "BLI_session_uuid.h"
#include "BLI_set.hh"
#include "DNA_ID.h"
+#include "DNA_customdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_session_uuid_types.h"
+#include "BKE_attribute.h"
+
struct ModifierData;
struct Object;
struct bNode;
@@ -77,9 +81,26 @@ struct NodeWarning {
std::string message;
};
+struct AvailableAttributeInfo {
+ AttributeDomain domain;
+ CustomDataType data_type;
+
+ uint64_t hash() const
+ {
+ uint64_t domain_hash = (uint64_t)domain;
+ uint64_t data_type_hash = (uint64_t)data_type;
+ return (domain_hash * 33) ^ (data_type_hash * 89);
+ }
+
+ friend bool operator==(const AvailableAttributeInfo &a, const AvailableAttributeInfo &b)
+ {
+ return a.domain == b.domain && a.data_type == b.data_type;
+ }
+};
+
struct NodeUIStorage {
blender::Vector<NodeWarning> warnings;
- blender::Set<std::string> attribute_name_hints;
+ blender::MultiValueMap<std::string, AvailableAttributeInfo> attribute_hints;
};
struct NodeTreeUIStorage {
@@ -103,4 +124,6 @@ void BKE_nodetree_error_message_add(bNodeTree &ntree,
void BKE_nodetree_attribute_hint_add(bNodeTree &ntree,
const NodeTreeEvaluationContext &context,
const bNode &node,
- const blender::StringRef attribute_name);
+ const blender::StringRef attribute_name,
+ const AttributeDomain domain,
+ const CustomDataType data_type);