Initial step for connectivity refactor.

Instead of wiring up pointers with prepareNodeEval() and finishNodeEval() use for each connection a single memory block where outputs and inputs point to.
This commit is contained in:
Martin Felis
2023-03-30 23:50:07 +02:00
parent 411aa5ef20
commit 91607baa9d
8 changed files with 249 additions and 855 deletions
+4 -4
View File
@@ -24,7 +24,7 @@ struct AnimNodeResource {
std::string m_name;
std::string m_type_name;
AnimNode* m_anim_node = nullptr;
NodeSocketAccessorBase* m_socket_accessor = nullptr;
NodeDescriptorBase* m_socket_accessor = nullptr;
float m_position[2] = {0.f, 0.f};
};
@@ -34,7 +34,7 @@ static inline AnimNodeResource AnimNodeResourceFactory(
result.m_type_name = node_type_name;
result.m_anim_node = AnimNodeFactory(node_type_name);
result.m_socket_accessor =
AnimNodeAccessorFactory(node_type_name, result.m_anim_node);
AnimNodeDescriptorFactory(node_type_name.c_str(), result.m_anim_node);
return result;
}
@@ -104,9 +104,9 @@ struct AnimGraphResource {
}
Socket* source_socket =
source_node.m_socket_accessor->FindOutputSocket(source_socket_name);
source_node.m_socket_accessor->GetOutputSocket(source_socket_name.c_str());
Socket* target_socket =
target_node.m_socket_accessor->FindInputSocket(target_socket_name);
target_node.m_socket_accessor->GetInputSocket(target_socket_name.c_str());
if (source_socket == nullptr || target_socket == nullptr) {
std::cerr << "Cannot connect nodes: could not find sockets." << std::endl;