所有权指针明确
This commit is contained in:
@@ -19,7 +19,7 @@ std::unique_ptr<Object> build_object(Args&&... args) {
|
||||
template <typename Scene, typename... Renderables>
|
||||
std::unique_ptr<Scene> build_scene(Renderables*... renderables) {
|
||||
typename Scene::template Builder<Scene> builder;
|
||||
(builder.add_renderable(renderables), ...);
|
||||
(builder.add_renderable(not_null{renderables}), ...);
|
||||
auto result = builder.build();
|
||||
if (!result) std::terminate();
|
||||
return std::move(result).value();
|
||||
@@ -35,8 +35,8 @@ template <typename Scene>
|
||||
void render_once(Scene* scene) {
|
||||
static std::uint64_t sequence{1};
|
||||
Frame_2D frame{Frame_Identity{sequence++, 0}};
|
||||
scene->set_frame_callback([](Frame_2D*) {});
|
||||
EXPECT_TRUE(scene->render(&frame).has_value());
|
||||
EXPECT_TRUE(scene->render(
|
||||
&frame, [](not_null<Frame_2D*>) {}).has_value());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,8 +60,10 @@ TEST(plottable_migration, curve_plots_share_partitioned_rendering) {
|
||||
frequency->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{0.0, 100.0});
|
||||
power->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{-100.0, 0.0});
|
||||
value->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{0.0, 100.0});
|
||||
auto trace = build_object<Trace>(time.get(), value.get(), 2u);
|
||||
auto sweep = build_object<Sweep>(frequency.get(), power.get(), 2u);
|
||||
auto trace = build_object<Trace>(not_null{time.get()},
|
||||
not_null{value.get()}, 2u);
|
||||
auto sweep = build_object<Sweep>(not_null{frequency.get()},
|
||||
not_null{power.get()}, 2u);
|
||||
trace->submit_stream<Frequency_Trace_Stream_Tag>(
|
||||
Frequency_Trace_Sample{time->append_time({1'000}), 10.0});
|
||||
trace->submit_stream<Frequency_Trace_Stream_Tag>(
|
||||
@@ -120,9 +122,11 @@ TEST(plottable_migration, raster_plots_share_partitioned_color_blocks) {
|
||||
configure_axis(time.get(), Axis_Orientation::vertical, {20.0, 100.0}, -80.0, canvas);
|
||||
frequency->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{0.0, 100.0});
|
||||
power->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{-100.0, 0.0});
|
||||
auto glow = build_object<Glow>(frequency.get(), power.get(),
|
||||
auto glow = build_object<Glow>(not_null{frequency.get()},
|
||||
not_null{power.get()},
|
||||
Plot_Partition_Grid{2, 2});
|
||||
auto waterfall = build_object<Fall>(frequency.get(), time.get(),
|
||||
auto waterfall = build_object<Fall>(not_null{frequency.get()},
|
||||
not_null{time.get()},
|
||||
Plot_Partition_Grid{2, 2});
|
||||
glow->set<&Afterglow::Prop::frequency_range>(Axis_Range{0.0, 100.0});
|
||||
glow->set<&Afterglow::Prop::power_range>(Axis_Range{-100.0, 0.0});
|
||||
@@ -172,8 +176,10 @@ TEST(plottable_migration, direct_overlay_and_constellation_build_and_render) {
|
||||
configure_axis(vertical.get(), Axis_Orientation::vertical, {20.0, 100.0}, -80.0, canvas);
|
||||
horizontal->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{-1.0, 1.0});
|
||||
vertical->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{-1.0, 1.0});
|
||||
auto diagram = build_object<Diagram>(horizontal.get(), vertical.get(), 2u);
|
||||
auto overlay = build_object<Overlay>(horizontal.get(), vertical.get());
|
||||
auto diagram = build_object<Diagram>(not_null{horizontal.get()},
|
||||
not_null{vertical.get()}, 2u);
|
||||
auto overlay = build_object<Overlay>(not_null{horizontal.get()},
|
||||
not_null{vertical.get()});
|
||||
diagram->set<&Constellation_Diagram::Prop::i_range>(Axis_Range{-1.0, 1.0});
|
||||
diagram->set<&Constellation_Diagram::Prop::q_range>(Axis_Range{-1.0, 1.0});
|
||||
diagram->submit_stream<Constellation_Stream_Tag>(
|
||||
@@ -199,7 +205,8 @@ TEST(selection_overlay, control_extends_selection_and_plain_click_clears_it) {
|
||||
configure_axis(vertical.get(), Axis_Orientation::vertical, {20.0, 100.0}, -80.0, canvas);
|
||||
horizontal->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{0.0, 100.0});
|
||||
vertical->set<&Numeric_Axis::Prop::coordinate_range>(Axis_Range{0.0, 100.0});
|
||||
auto overlay = build_object<Overlay>(horizontal.get(), vertical.get());
|
||||
auto overlay = build_object<Overlay>(not_null{horizontal.get()},
|
||||
not_null{vertical.get()});
|
||||
auto scene = build_scene<Scene>(overlay.get());
|
||||
scene->set<&Render_Scene_2D::Prop::viewport>(canvas);
|
||||
scene->activate_view();
|
||||
@@ -246,7 +253,8 @@ TEST(selection_overlay, time_axis_selection_keeps_axis_coordinates_while_window_
|
||||
time->append_time({1'000});
|
||||
time->append_time({2'000});
|
||||
time->append_time({3'000});
|
||||
auto overlay = build_object<Overlay>(time.get(), value.get());
|
||||
auto overlay = build_object<Overlay>(not_null{time.get()},
|
||||
not_null{value.get()});
|
||||
auto scene = build_scene<Scene>(overlay.get());
|
||||
scene->set<&Render_Scene_2D::Prop::viewport>(canvas);
|
||||
scene->activate_view();
|
||||
|
||||
Reference in New Issue
Block a user