内核优化

This commit is contained in:
2026-08-10 16:17:59 +08:00
parent 3f37c8e6d5
commit c677c65f0e
8 changed files with 136 additions and 2 deletions
@@ -1,6 +1,14 @@
#include <gtest/gtest.h>
#include "renderive/renderable/Renderable.hpp"
#include "renderive/scene/Scene.hpp"
static_assert(Color_Cache_Type<Recording_Color_Cache>);
struct Resource_Only_Color_Cache : Color_Cache {
explicit Resource_Only_Color_Cache(std::pmr::memory_resource& memory_resource) : memory_resource(&memory_resource) {}
void clear() override {}
void composite(const Color_Cache&) override {}
std::pmr::memory_resource* memory_resource;
};
static_assert(Color_Cache_Type<Resource_Only_Color_Cache>);
TEST(color_cache_test, composites_source_values_in_order) {
Recording_Color_Cache first;
Recording_Color_Cache second;
@@ -13,3 +21,10 @@ TEST(color_cache_test, composites_source_values_in_order) {
EXPECT_EQ(result.values.at(0), 1);
EXPECT_EQ(result.values.at(1), 2);
}
TEST(color_cache_test, scene_accepts_resource_only_cache) {
using Strategy = Low_Latency_Strategy<Scene2D_Frame_Data>;
Scene2D_Context<Strategy, Resource_Only_Color_Cache> scene;
scene.with_final_color_cache([&](const Resource_Only_Color_Cache& cache) {
EXPECT_EQ(cache.memory_resource, &scene.memory_resource());
});
}