所有权添加完成

This commit is contained in:
2026-08-13 06:20:13 +08:00
parent 3e9b924776
commit a517804d27
51 changed files with 1961 additions and 1108 deletions
@@ -8,7 +8,7 @@
#include "renderive/scene/Scene.hpp"
struct Renderable_Base_Test_Renderable : Renderable_Base {
Renderable_Base_Test_Renderable(Scene_Base& scene, bool cache_enabled) : Renderable_Base(scene, {.cache_enabled = cache_enabled}) {}
void prepare(const Scene_Render_Context&) override {
void prepare(const Prepare_Render_Context&) override {
++render_count;
}
int render_count{};
@@ -47,7 +47,7 @@ TEST(renderable_base_test, changes_configuration_through_scene) {
scene.attach_renderable(renderable);
scene.render();
scene.wait_for_render();
scene.set_renderable_configuration(*renderable, {.cache_enabled = true});
scene.set_renderable_configuration(renderable, {.cache_enabled = true});
scene.render();
scene.wait_for_render();
EXPECT_TRUE(renderable->configuration().cache_enabled);
@@ -55,7 +55,7 @@ TEST(renderable_base_test, changes_configuration_through_scene) {
}
struct Renderable_Base_Cache_Invalidation_Test_Renderable : Renderable_Base {
explicit Renderable_Base_Cache_Invalidation_Test_Renderable(Scene_Base& scene) : Renderable_Base(scene, {.cache_enabled = true}) {}
void prepare(const Scene_Render_Context&) override {
void prepare(const Prepare_Render_Context&) override {
const int count = render_count.fetch_add(1, std::memory_order_acq_rel) + 1;
if (count != 1) {
return;
@@ -111,8 +111,8 @@ struct Renderable_Base_Render_Graph_Rebuild_Test_Renderable : Renderable_Base {
return release_build;
});
}
graph.emplace("prepare", "graph_rebuild_test", Render_Node_Kind::prepare,
[](const Scene_Render_Context&) {});
graph.emplace("prepare", "graph_rebuild_test",
[](const Prepare_Render_Context&) {});
}
void wait_build_started() {
std::unique_lock lock(mutex);
@@ -183,7 +183,7 @@ TEST(renderable_base_test, configuration_snapshot_is_safe_during_scene_updates)
std::atomic<bool> running{true};
std::thread writer([&] {
for (int index = 0; index < 1000; ++index) {
scene.set_renderable_configuration(*renderable, {.cache_enabled = index % 2 != 0});
scene.set_renderable_configuration(renderable, {.cache_enabled = index % 2 != 0});
}
running.store(false, std::memory_order_release);
});
@@ -4,10 +4,9 @@
#include "renderive/scene/Scene.hpp"
struct Renderable_Concept_Test : Renderable_Base {
explicit Renderable_Concept_Test(Scene_Base& scene) : Renderable_Base(scene) {}
void prepare(const Scene_Render_Context&) override {}
void prepare(const Prepare_Render_Context&) override {}
};
static_assert(Renderable<Renderable_Concept_Test>);
static_assert(!std::same_as<Renderable_Base::Layer_Node, Renderable_Base::Dependency_Node>);
TEST(renderable_concept_test, exposes_scene_and_configuration_state) {
Scene2D_Context<> scene;
Renderable_Concept_Test renderable(scene);