This commit is contained in:
2026-08-27 14:54:06 +08:00
parent ecf24cbe50
commit 63bb406a27
34 changed files with 690 additions and 1296 deletions
+10 -11
View File
@@ -68,7 +68,7 @@ TEST(plottable_migration, curve_plots_share_partitioned_rendering) {
Frequency_Trace_Sample{time->append_time({2'000}), 50.0});
trace->submit_stream<Frequency_Trace_Stream_Tag>(
Frequency_Trace_Sample{time->append_time({3'000}), 90.0});
trace->mark_dirty<Prepare_Data_Tag>();
trace->mark_dirty<Render_Graph_Tag>();
sweep->set<&Sweep_Spectrum::Prop::frequency_range>(Axis_Range{0.0, 100.0});
sweep->set<&Sweep_Spectrum::Prop::block_count>(2u);
const std::array<Plot_Value, 4> first_block{-90.0, -60.0, -30.0, -10.0};
@@ -80,7 +80,7 @@ TEST(plottable_migration, curve_plots_share_partitioned_rendering) {
sweep->submit_stream<Sweep_Spectrum_Stream_Tag>(
std::make_shared<const Sweep_Spectrum_Block>(Sweep_Spectrum_Block{
1, {second_block.begin(), second_block.end()}}));
sweep->mark_dirty<Prepare_Data_Tag>();
sweep->mark_dirty<Render_Graph_Tag>();
auto scene = build_scene<Scene>(trace.get(), sweep.get());
scene->set<&Render_Scene_2D::Prop::viewport>(canvas);
scene->activate_view();
@@ -94,8 +94,8 @@ TEST(plottable_migration, curve_plots_share_partitioned_rendering) {
0, {replacement_block.begin(), replacement_block.end()}}));
trace->submit_stream<Frequency_Trace_Stream_Tag>(
Frequency_Trace_Sample{time->append_time({4'000}), 60.0});
trace->mark_dirty<Prepare_Data_Tag>();
sweep->mark_dirty<Prepare_Data_Tag>();
trace->mark_dirty<Render_Graph_Tag>();
sweep->mark_dirty<Render_Graph_Tag>();
render_once(scene.get());
EXPECT_EQ(trace->access_rendering_stream<Frequency_Trace_Stream_Tag>(
[](std::span<Frequency_Trace_Sample> samples) { return samples.size(); }), 4u);
@@ -132,12 +132,12 @@ TEST(plottable_migration, raster_plots_share_partitioned_color_blocks) {
const std::array<Plot_Value, 4> row{-90.0, -60.0, -30.0, -10.0};
glow->submit_stream<Afterglow_Stream_Tag>(
std::make_shared<const std::vector<Plot_Value>>(row.begin(), row.end()));
glow->mark_dirty<Prepare_Data_Tag>();
glow->mark_dirty<Render_Graph_Tag>();
waterfall->submit_stream<Waterfall_Stream_Tag>(std::make_shared<const Waterfall_Row>(
Waterfall_Row{time->append_time({1'000}), {row.begin(), row.end()}}));
waterfall->submit_stream<Waterfall_Stream_Tag>(std::make_shared<const Waterfall_Row>(
Waterfall_Row{time->append_time({2'000}), {row.begin(), row.end()}}));
waterfall->mark_dirty<Prepare_Data_Tag>();
waterfall->mark_dirty<Render_Graph_Tag>();
auto scene = build_scene<Scene>(glow.get(), waterfall.get());
scene->set<&Render_Scene_2D::Prop::viewport>(canvas);
scene->activate_view();
@@ -148,10 +148,10 @@ TEST(plottable_migration, raster_plots_share_partitioned_color_blocks) {
[](std::span<std::shared_ptr<const Waterfall_Row>> rows) { return rows.size(); }), 2u);
glow->submit_stream<Afterglow_Stream_Tag>(
std::make_shared<const std::vector<Plot_Value>>(row.begin(), row.end()));
glow->mark_dirty<Prepare_Data_Tag>();
glow->mark_dirty<Render_Graph_Tag>();
waterfall->submit_stream<Waterfall_Stream_Tag>(std::make_shared<const Waterfall_Row>(
Waterfall_Row{time->append_time({3'000}), {row.begin(), row.end()}}));
waterfall->mark_dirty<Prepare_Data_Tag>();
waterfall->mark_dirty<Render_Graph_Tag>();
render_once(scene.get());
EXPECT_EQ(glow->access_rendering_stream<Afterglow_Stream_Tag>(
[](std::span<std::shared_ptr<const std::vector<Plot_Value>>> spectra) { return spectra.size(); }), 2u);
@@ -178,15 +178,14 @@ TEST(plottable_migration, direct_overlay_and_constellation_build_and_render) {
diagram->set<&Constellation_Diagram::Prop::q_range>(Axis_Range{-1.0, 1.0});
diagram->submit_stream<Constellation_Stream_Tag>(
Constellation_Point{{0.25, -0.25}, monotonic_milliseconds()});
diagram->mark_dirty<Prepare_Data_Tag>();
diagram->mark_dirty<Render_Graph_Tag>();
auto scene = build_scene<Scene>(diagram.get(), overlay.get());
scene->set<&Render_Scene_2D::Prop::viewport>(canvas);
scene->activate_view();
render_once(scene.get());
EXPECT_EQ(diagram->access_rendering_stream<Constellation_Stream_Tag>(
[](std::span<Constellation_Point> points) { return points.size(); }), 1u);
EXPECT_EQ(overlay->read_state<Renderable::Base_Tag>().prepare_task_count, 0u);
EXPECT_EQ(overlay->read_state<Renderable::Base_Tag>().paint_task_count, 1u);
EXPECT_EQ(overlay->read_state<Renderable::Base_Tag>().task_count, 1u);
}
TEST(selection_overlay, control_extends_selection_and_plain_click_clears_it) {