修复大错误移动到prop
This commit is contained in:
@@ -1,11 +1,9 @@
|
||||
#include "scene.hpp"
|
||||
#include <gtest/gtest.h>
|
||||
namespace {
|
||||
struct Direct_State_Tag {};
|
||||
struct Graph_State_Tag {};
|
||||
struct Direct_Renderable : double_buffer::Def<Direct_Renderable, aethera::Renderable, double_buffer::State_Type<Direct_State_Tag>> {
|
||||
struct Direct_Renderable : double_buffer::Def<Direct_Renderable, aethera::Renderable> {
|
||||
struct Prop : Prev_Prop {};
|
||||
struct State : Prev_State<Direct_State_Tag> {
|
||||
struct State : Prev_State {
|
||||
bool operator==(const State&) const = default;
|
||||
};
|
||||
struct Private : Prev_Private {
|
||||
@@ -20,9 +18,9 @@ struct Direct_Renderable : double_buffer::Def<Direct_Renderable, aethera::Render
|
||||
};
|
||||
Private& data_for_test();
|
||||
};
|
||||
struct Graph_Renderable : double_buffer::Def<Graph_Renderable, aethera::Renderable, double_buffer::State_Type<Graph_State_Tag>> {
|
||||
struct Graph_Renderable : double_buffer::Def<Graph_Renderable, aethera::Renderable> {
|
||||
struct Prop : Prev_Prop {};
|
||||
struct State : Prev_State<Graph_State_Tag> {
|
||||
struct State : Prev_State {
|
||||
bool operator==(const State&) const = default;
|
||||
};
|
||||
struct Private : Prev_Private {
|
||||
@@ -30,13 +28,13 @@ struct Graph_Renderable : double_buffer::Def<Graph_Renderable, aethera::Renderab
|
||||
int paint_calls{};
|
||||
int prepare_builds{};
|
||||
bool rebuild_prepare{};
|
||||
tf::Taskflow build_prepare_graph(double_buffer::Attached auto*, const State&) {
|
||||
tf::Taskflow build_prepare_graph(double_buffer::Attached auto*, const Prop&) {
|
||||
++prepare_builds;
|
||||
tf::Taskflow graph;
|
||||
graph.emplace([this] { ++prepare_calls; }).name("test.prepare.graph.task");
|
||||
return graph;
|
||||
}
|
||||
bool should_rebuild_prepare_graph(double_buffer::Attached auto*, const State&) {
|
||||
bool should_rebuild_prepare_graph(double_buffer::Attached auto*, const Prop&) {
|
||||
return std::exchange(rebuild_prepare, false);
|
||||
}
|
||||
void paint(double_buffer::Attached auto*) {
|
||||
@@ -54,10 +52,9 @@ inline Direct_Renderable::Private& Direct_Renderable::data_for_test() {
|
||||
inline Graph_Renderable::Private& Graph_Renderable::data_for_test() {
|
||||
return static_cast<Private&>(*d);
|
||||
}
|
||||
struct Dependency_State_Tag {};
|
||||
struct Dependency_Renderable : double_buffer::Def<Dependency_Renderable, aethera::Renderable, double_buffer::State_Type<Dependency_State_Tag>> {
|
||||
struct Dependency_Renderable : double_buffer::Def<Dependency_Renderable, aethera::Renderable> {
|
||||
struct Prop : Prev_Prop {};
|
||||
struct State : Prev_State<Dependency_State_Tag> {
|
||||
struct State : Prev_State {
|
||||
int revision{};
|
||||
bool operator==(const State&) const = default;
|
||||
};
|
||||
@@ -141,12 +138,12 @@ TEST(renderable_state, scene_and_renderable_callbacks_publish_at_stage_boundarie
|
||||
int renderable_updates = 0;
|
||||
int scene_updates = 0;
|
||||
int runtime_updates = 0;
|
||||
renderable->set_state_callback<aethera::Renderable_State_Tag>([&](const auto& state) {
|
||||
renderable->set_state_callback<aethera::Renderable::Base_Tag>([&](const auto& state) {
|
||||
++renderable_updates;
|
||||
EXPECT_TRUE(state.prepare_executed);
|
||||
EXPECT_TRUE(state.paint_executed);
|
||||
});
|
||||
scene->set_state_callback<aethera::Scene_State_Tag>([&](const auto& state) {
|
||||
scene->set_state_callback<aethera::Scene::Base_Tag>([&](const auto& state) {
|
||||
++scene_updates;
|
||||
EXPECT_GT(state.taskflow_task_count, 0u);
|
||||
});
|
||||
@@ -169,7 +166,7 @@ TEST(scene_state, structural_statistics_survive_a_process_without_rebuild) {
|
||||
std::size_t task_count{};
|
||||
std::size_t dependency_count{};
|
||||
int updates{};
|
||||
scene->set_state_callback<aethera::Scene_State_Tag>([&](const auto& state) {
|
||||
scene->set_state_callback<aethera::Scene::Base_Tag>([&](const auto& state) {
|
||||
EXPECT_EQ(state.renderable_count, 1u);
|
||||
EXPECT_GT(state.taskflow_task_count, 0u);
|
||||
if (updates == 0) {
|
||||
|
||||
Reference in New Issue
Block a user