Layout animation time bindable (#11264) c95fe9334e

Co-authored-by: Philip Chung <philterdesign@gmail.com>
This commit is contained in:
philter
2025-12-12 04:26:43 +00:00
parent 2981f6ad37
commit 76973925fb
5 changed files with 35 additions and 2 deletions

Binary file not shown.

View File

@@ -517,4 +517,36 @@ TEST_CASE("Layout background & foreground shape paints.", "[silver]")
}
CHECK(silver.matches("layout_paint"));
}
TEST_CASE("Layout animation time databound", "[silver]")
{
rive::SerializingFactory silver;
auto file = ReadRiveFile("assets/layout/layout_anim_bound.riv", &silver);
auto artboard = file->artboardDefault();
silver.frameSize(artboard->width(), artboard->height());
REQUIRE(artboard != nullptr);
auto viewModelInstance =
file->createDefaultViewModelInstance(artboard.get());
REQUIRE(viewModelInstance != nullptr);
artboard->bindViewModelInstance(viewModelInstance);
auto stateMachine = artboard->stateMachineAt(0);
stateMachine->advanceAndApply(0.1f);
auto renderer = silver.makeRenderer();
artboard->draw(renderer.get());
int frames = 32;
for (int i = 0; i < frames; i++)
{
silver.addFrame();
stateMachine->advanceAndApply(0.016f);
artboard->draw(renderer.get());
}
CHECK(silver.matches("layout_anim_bound"));
}

Binary file not shown.