feat: add weather-local render cadence
This commit is contained in:
@@ -613,6 +613,30 @@ TEST(Source, RasterArrayTimelineKeepsCoreOwnedWindowAndPlaybackControls) {
|
||||
EXPECT_EQ(timeline.frame().state, style::RasterArrayPlaybackState::Ended);
|
||||
}
|
||||
|
||||
TEST(Source, RasterArrayTimelineCadenceUsesOneSharedDeterministicDeadline) {
|
||||
std::vector<style::RasterArrayTimelineRuntime::Entry> entries;
|
||||
for (uint64_t index = 0; index < 3; ++index) {
|
||||
entries.push_back({std::make_shared<particle::ParticleFieldSnapshot>(
|
||||
particle::OfflineFixtureParticleAdapter::load("uniform-east", index + 1)), index * 4000});
|
||||
}
|
||||
style::RasterArrayTimelineRuntime timeline{std::move(entries)};
|
||||
const auto start = std::chrono::steady_clock::time_point{} + std::chrono::seconds(1);
|
||||
EXPECT_TRUE(timeline.cadenceDue(start));
|
||||
timeline.markCadenceTick(start);
|
||||
EXPECT_TRUE(timeline.setTargetFps(style::RasterArrayTargetFps::Fps30));
|
||||
EXPECT_TRUE(timeline.cadenceDue(start));
|
||||
timeline.markCadenceTick(start);
|
||||
EXPECT_FALSE(timeline.cadenceDue(start + std::chrono::milliseconds(33)));
|
||||
EXPECT_TRUE(timeline.cadenceDue(start + std::chrono::milliseconds(34)));
|
||||
EXPECT_TRUE(timeline.setTargetFps(style::RasterArrayTargetFps::Fps60));
|
||||
EXPECT_TRUE(timeline.cadenceDue(start));
|
||||
timeline.markCadenceTick(start);
|
||||
EXPECT_FALSE(timeline.cadenceDue(start + std::chrono::milliseconds(16)));
|
||||
EXPECT_TRUE(timeline.cadenceDue(start + std::chrono::milliseconds(17)));
|
||||
EXPECT_TRUE(timeline.setTargetFps(style::RasterArrayTargetFps::Auto));
|
||||
EXPECT_TRUE(timeline.cadenceDue(start));
|
||||
}
|
||||
|
||||
TEST(Source, RasterArrayRuntimeFieldWindowAdvancesWithoutReplacingTheSource) {
|
||||
SourceTest test;
|
||||
const auto eastMetadata = fixtureBytes("uniform-east", "metadata.json");
|
||||
|
||||
Reference in New Issue
Block a user