Files
Renderive/Kernel/tests/renderive/scene/Scene_Test_Helpers.hpp
T
2026-08-15 00:23:52 +08:00

25 lines
776 B
C++

#pragma once
#include <future>
#include <utility>
#include "renderive/scene/base/Scene_Base.hpp"
template <class Scene, class... Owners>
void attach_initial(Scene& scene, const Owners&... owners) {
auto builder = scene.attach_builder();
(builder.attach(owners), ...);
}
template <class Scene, class Edit>
void with_attach_builder(Scene& scene, Edit&& edit) {
auto builder = scene.attach_builder();
edit(builder);
}
template <class Scene, class Edit>
void wait_renderable_edit(Scene& scene, Edit&& edit) {
std::promise<void> completed;
auto future = completed.get_future();
scene.edit_renderables([edit = std::forward<Edit>(edit), &completed](auto& editor) mutable {
edit(editor);
completed.set_value();
});
future.wait();
}