删除plot_core
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
namespace renderive {
|
||||
namespace {
|
||||
TEST(Renderive_Core2_Frame_Pipeline, ManualLifecycleSeparatesPrepareRefreshAndRender) {
|
||||
Plot_Core plot(Frame_Control_Mode::Manual);
|
||||
Manual_Scene2D plot;
|
||||
plot.init();
|
||||
plot.set_viewport_size({96, 54});
|
||||
ASSERT_TRUE(plot.prepare_frame());
|
||||
@@ -36,7 +36,7 @@ TEST(Renderive_Core2_Frame_Pipeline, ManualLifecycleSeparatesPrepareRefreshAndRe
|
||||
EXPECT_EQ(plot.diagnostics().refresh.frame_count, 1u);
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, HighFrequencyLowLatencyLifecycleExposesKernelTiming) {
|
||||
Plot_Core plot(Frame_Control_Mode::Low_Latency);
|
||||
Scene2D plot;
|
||||
plot.init();
|
||||
plot.set_viewport_size({96, 54});
|
||||
plot.set_max_render_fps(1'000'000'000.0);
|
||||
@@ -69,7 +69,7 @@ TEST(Renderive_Core2_Frame_Pipeline, HighFrequencyLowLatencyLifecycleExposesKern
|
||||
EXPECT_EQ(refresh.next_refresh_interval_ns, snapshot.next_refresh_interval_ns);
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, LowLatencyConsumerFeedbackFlowsThroughCore2IntoKernelScheduling) {
|
||||
Plot_Core plot(Frame_Control_Mode::Low_Latency);
|
||||
Scene2D plot;
|
||||
plot.init();
|
||||
plot.set_viewport_size({96, 54});
|
||||
plot.set_max_render_fps(100.0);
|
||||
@@ -90,7 +90,7 @@ TEST(Renderive_Core2_Frame_Pipeline, LowLatencyConsumerFeedbackFlowsThroughCore2
|
||||
EXPECT_EQ(plot.refresh_feedback_snapshot().next_refresh_interval_ns, 40'000'000u);
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, LowLatencyLimitsCanBeClearedIndependently) {
|
||||
Plot_Core plot(Frame_Control_Mode::Low_Latency);
|
||||
Scene2D plot;
|
||||
plot.init();
|
||||
plot.set_viewport_size({96, 54});
|
||||
plot.set_max_render_fps(100.0);
|
||||
@@ -108,7 +108,7 @@ TEST(Renderive_Core2_Frame_Pipeline, LowLatencyLimitsCanBeClearedIndependently)
|
||||
EXPECT_TRUE(snapshot.limit_state == "paint_limited" || snapshot.limit_state == "render_limited");
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, LowLatencyReplacementRetiresOldFrameWithoutPhantomPendingFrame) {
|
||||
Plot_Core plot(Frame_Control_Mode::Low_Latency);
|
||||
Scene2D plot;
|
||||
plot.init();
|
||||
plot.set_viewport_size({64, 40});
|
||||
ASSERT_TRUE(plot.prepare_frame());
|
||||
@@ -129,7 +129,7 @@ TEST(Renderive_Core2_Frame_Pipeline, LowLatencyReplacementRetiresOldFrameWithout
|
||||
EXPECT_EQ(snapshot.latest_sequence, 2u);
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, LowLatencyDiscardAndEmptyRenderRemainObservable) {
|
||||
Plot_Core plot(Frame_Control_Mode::Low_Latency);
|
||||
Scene2D plot;
|
||||
plot.init();
|
||||
plot.set_viewport_size({64, 40});
|
||||
ASSERT_TRUE(plot.prepare_frame());
|
||||
@@ -149,7 +149,7 @@ TEST(Renderive_Core2_Frame_Pipeline, LowLatencyDiscardAndEmptyRenderRemainObserv
|
||||
EXPECT_EQ(snapshot.latest_sequence, 1u);
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, ManualDiscardAndFailedRefreshUpdateObserverState) {
|
||||
Plot_Core plot(Frame_Control_Mode::Manual);
|
||||
Manual_Scene2D plot;
|
||||
plot.init();
|
||||
plot.set_viewport_size({64, 40});
|
||||
ASSERT_TRUE(plot.prepare_frame());
|
||||
@@ -170,7 +170,7 @@ TEST(Renderive_Core2_Frame_Pipeline, ManualDiscardAndFailedRefreshUpdateObserver
|
||||
EXPECT_EQ(snapshot.paint_duration_ns, last_paint_duration_ns);
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, PlaybackPreservesQueueDepthAndEmptyAcquireFailure) {
|
||||
Plot_Core plot(Frame_Control_Mode::Playback);
|
||||
Playback_Scene2D plot;
|
||||
plot.init();
|
||||
plot.set_viewport_size({64, 40});
|
||||
ASSERT_TRUE(plot.prepare_frame());
|
||||
@@ -202,7 +202,7 @@ TEST(Renderive_Core2_Frame_Pipeline, PlaybackPreservesQueueDepthAndEmptyAcquireF
|
||||
EXPECT_EQ(snapshot.queue_wait_ns, last_queue_wait_ns);
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, PlaybackFullCyclePreservesPreviouslyQueuedFrames) {
|
||||
Plot_Core plot(Frame_Control_Mode::Playback);
|
||||
Playback_Scene2D plot;
|
||||
plot.init();
|
||||
plot.set_viewport_size({96, 54});
|
||||
ASSERT_TRUE(plot.prepare_frame());
|
||||
@@ -224,34 +224,32 @@ TEST(Renderive_Core2_Frame_Pipeline, PlaybackFullCyclePreservesPreviouslyQueuedF
|
||||
EXPECT_EQ(plot.frame_observer_snapshot().pending_frame_count, 3u);
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, EveryModeHonorsActiveDirtyAndForceRenderGates) {
|
||||
constexpr std::array modes{
|
||||
Frame_Control_Mode::Manual,
|
||||
Frame_Control_Mode::Low_Latency,
|
||||
Frame_Control_Mode::Playback
|
||||
};
|
||||
for (const auto mode : modes) {
|
||||
Plot_Core plot(mode);
|
||||
plot.init();
|
||||
plot.set_viewport_size({80, 45});
|
||||
EXPECT_FALSE(plot.view_active());
|
||||
EXPECT_FALSE(plot.render_frame(false));
|
||||
EXPECT_EQ(plot.frame_observer_snapshot().observation_count, 0u);
|
||||
plot.activate_view();
|
||||
ASSERT_TRUE(plot.render_frame(false));
|
||||
const auto completed = plot.frame_observer_snapshot();
|
||||
const auto verify = []<class Scene_Type>(Frame_Control_Mode mode) {
|
||||
Scene_Type scene;
|
||||
scene.init();
|
||||
scene.set_viewport_size({80, 45});
|
||||
EXPECT_FALSE(scene.view_active());
|
||||
EXPECT_FALSE(scene.render_frame(false));
|
||||
EXPECT_EQ(scene.frame_observer_snapshot().observation_count, 0u);
|
||||
scene.activate_view();
|
||||
ASSERT_TRUE(scene.render_frame(false));
|
||||
const auto completed = scene.frame_observer_snapshot();
|
||||
EXPECT_EQ(completed.mode, mode);
|
||||
EXPECT_EQ(completed.consumed_frame_count, 1u);
|
||||
EXPECT_FALSE(plot.render_frame(false));
|
||||
EXPECT_EQ(plot.frame_observer_snapshot().consumed_frame_count, 1u);
|
||||
plot.deactivate_view();
|
||||
plot.set_background_color(Color{8, 16, 24, 255});
|
||||
EXPECT_FALSE(plot.render_frame(false));
|
||||
ASSERT_TRUE(plot.render_frame(true));
|
||||
EXPECT_EQ(plot.frame_observer_snapshot().consumed_frame_count, 2u);
|
||||
}
|
||||
EXPECT_FALSE(scene.render_frame(false));
|
||||
EXPECT_EQ(scene.frame_observer_snapshot().consumed_frame_count, 1u);
|
||||
scene.deactivate_view();
|
||||
scene.set_background_color(Color{8, 16, 24, 255});
|
||||
EXPECT_FALSE(scene.render_frame(false));
|
||||
ASSERT_TRUE(scene.render_frame(true));
|
||||
EXPECT_EQ(scene.frame_observer_snapshot().consumed_frame_count, 2u);
|
||||
};
|
||||
verify.template operator()<Manual_Scene2D>(Frame_Control_Mode::Manual);
|
||||
verify.template operator()<Scene2D>(Frame_Control_Mode::Low_Latency);
|
||||
verify.template operator()<Playback_Scene2D>(Frame_Control_Mode::Playback);
|
||||
}
|
||||
TEST(Renderive_Core2_Frame_Pipeline, FrequencyConfigurationRejectsInvalidValuesAndWrongModes) {
|
||||
Plot_Core low_latency(Frame_Control_Mode::Low_Latency);
|
||||
Scene2D low_latency;
|
||||
EXPECT_THROW(low_latency.set_max_render_fps(0.0), std::invalid_argument);
|
||||
EXPECT_THROW(low_latency.set_max_render_fps(-1.0), std::invalid_argument);
|
||||
EXPECT_THROW(low_latency.set_max_render_fps(std::numeric_limits<double>::quiet_NaN()),
|
||||
@@ -260,8 +258,8 @@ TEST(Renderive_Core2_Frame_Pipeline, FrequencyConfigurationRejectsInvalidValuesA
|
||||
std::invalid_argument);
|
||||
low_latency.set_max_render_fps(1'000.0);
|
||||
EXPECT_DOUBLE_EQ(low_latency.max_render_fps(), 1'000.0);
|
||||
Plot_Core manual(Frame_Control_Mode::Manual);
|
||||
Plot_Core playback(Frame_Control_Mode::Playback);
|
||||
Manual_Scene2D manual;
|
||||
Playback_Scene2D playback;
|
||||
EXPECT_THROW(manual.set_max_render_fps(60.0), std::logic_error);
|
||||
EXPECT_THROW(playback.set_max_render_fps(60.0), std::logic_error);
|
||||
EXPECT_FALSE(playback.refresh_manual_frame());
|
||||
|
||||
Reference in New Issue
Block a user