结构优化

This commit is contained in:
2026-08-13 15:17:02 +08:00
parent 65cf786e2d
commit e8e8b29806
25 changed files with 822 additions and 461 deletions
@@ -7,6 +7,7 @@
#include "renderive/base/property/Property.hpp"
#include "renderive/real_time_data/Real_Time_Data.hpp"
#include "renderive/renderable/Renderable.hpp"
#include "renderive/renderable/Renderable_Test_Harness.hpp"
#include "renderive/scene/Scene.hpp"
#include "Scene_Test_Helpers.hpp"
class Scene_Memory_Resource_Test_Resource : public std::pmr::memory_resource {
@@ -32,10 +33,10 @@ private:
std::atomic<std::size_t> allocation_count_{};
std::atomic<std::size_t> deallocation_count_{};
};
struct Scene_Memory_Resource_Test_Renderable : Renderable_Base {
struct Scene_Memory_Resource_Test_Renderable : Renderable_Test_Harness {
explicit Scene_Memory_Resource_Test_Renderable(std::pmr::memory_resource& memory_resource = *std::pmr::get_default_resource())
: Renderable_Base({.cache_enabled = false}, memory_resource) {}
void build_prepare_graph(Renderable_Graph_Builder& graph) override {
: Renderable_Test_Harness({.cache_enabled = false}, memory_resource) {}
void build_prepare_graph_for_test(Renderable_Graph_Builder& graph) override {
auto first = graph.emplace("first", "prepare_memory_resource_test",
[](const Prepare_Render_Context&) {});
auto second = graph.emplace("second", "render_memory_resource_test",
@@ -43,7 +44,7 @@ struct Scene_Memory_Resource_Test_Renderable : Renderable_Base {
graph.precede(first, second);
}
void build_graph_for_test() {
static_cast<void>(render_graph());
static_cast<void>(render_graph_for_test());
}
};
struct Scene_Memory_Resource_Test_Product {
@@ -63,7 +64,7 @@ TEST(scene_memory_resource_test, renderable_builder_can_use_scene_memory_domain_
EXPECT_EQ(&scene.upstream_memory_resource(), &upstream);
EXPECT_NE(&scene.memory_resource(), &upstream);
auto renderable = renderive_Owner<Scene_Memory_Resource_Test_Renderable>::make(scene.memory_resource());
EXPECT_EQ(&renderable->memory_resource(), &scene.memory_resource());
EXPECT_EQ(&renderable->memory_resource_for_test(), &scene.memory_resource());
attach_initial(scene, renderable);
scene.render();
scene.wait_for_render();
@@ -74,7 +75,7 @@ TEST(scene_memory_resource_test, explicit_scene_memory_domain_remains_valid_whil
Scene2D_Context<> scene(upstream);
auto renderable = renderive_Owner<Scene_Memory_Resource_Test_Renderable>::make(scene.memory_resource());
renderable->build_graph_for_test();
EXPECT_EQ(&renderable->memory_resource(), &scene.memory_resource());
EXPECT_EQ(&renderable->memory_resource_for_test(), &scene.memory_resource());
}
TEST(scene_memory_resource_test, supports_independent_resource_aware_components) {
Scene_Memory_Resource_Test_Resource memory_resource;
@@ -100,6 +101,6 @@ TEST(scene_memory_resource_test, supports_explicit_independent_renderable_memory
Scene_Memory_Resource_Test_Resource memory_resource;
auto renderable = renderive_Owner<Scene_Memory_Resource_Test_Renderable>::make(memory_resource);
renderable->build_graph_for_test();
EXPECT_EQ(&renderable->memory_resource(), &memory_resource);
EXPECT_EQ(&renderable->memory_resource_for_test(), &memory_resource);
EXPECT_GT(memory_resource.allocation_count(), 0);
}