WIP: graph evaluations. Fixed various memory issues, better tests.

This commit is contained in:
Martin Felis
2022-04-14 18:03:36 +02:00
parent 2da07ef961
commit 5e7a48b2eb
6 changed files with 211 additions and 115 deletions
+4 -3
View File
@@ -105,7 +105,7 @@ void AnimGraph::prepareNodeEval(
assert (*output_connection.m_source_socket.m_reference.ptr_ptr == nullptr);
(*output_connection.m_source_socket.m_reference.ptr_ptr) =
m_anim_data_work_buffer.allocate(graph_context);
m_anim_data_allocator.allocate(graph_context.m_skeleton);
}
for (size_t i = 0, n = m_node_input_connections[node_index].size(); i < n;
@@ -132,8 +132,8 @@ void AnimGraph::finishNodeEval(size_t node_index) {
continue;
}
m_anim_data_work_buffer.free(static_cast<AnimData*>(
input_connection.m_source_socket.m_reference.ptr));
m_anim_data_allocator.free(static_cast<AnimData*>(
*input_connection.m_source_socket.m_reference.ptr_ptr));
(*input_connection.m_source_socket.m_reference.ptr_ptr) = nullptr;
}
}
@@ -241,6 +241,7 @@ void AnimGraph::evaluate(AnimGraphContext& context) {
}
evalOutputNode();
finishNodeEval(0);
}
Socket* AnimGraph::getInputSocket(const std::string& name) {