Viewer : handle artboard as still-frame Just handling the case when the given artboard doesn't contain any machines or animations -- but we still want to see the artboard. Diffs= f1ecc066f Handle artboard as still-frame
diff --git a/.rive_head b/.rive_head index d7961db..584acbc 100644 --- a/.rive_head +++ b/.rive_head
@@ -1 +1 @@ -be8594d42c6084c10ac5e9bac3a2f33a31e7b27a +f1ecc066f67fee86c7f88de7f7ce1b391c47725e
diff --git a/viewer/src/viewer_content/scene_content.cpp b/viewer/src/viewer_content/scene_content.cpp index efd9609..bc84d44 100644 --- a/viewer/src/viewer_content/scene_content.cpp +++ b/viewer/src/viewer_content/scene_content.cpp
@@ -133,23 +133,24 @@ } void handleDraw(rive::Renderer* renderer, double elapsed) override { + renderer->save(); + + auto viewTransform = rive::computeAlignment(rive::Fit::contain, + rive::Alignment::center, + rive::AABB(0, 0, m_width, m_height), + m_ArtboardInstance->bounds()); + renderer->transform(viewTransform); + // Store the inverse view so we can later go from screen to world. + m_InverseViewTransform = viewTransform.invertOrIdentity(); + if (m_CurrentScene) { m_CurrentScene->advanceAndApply(elapsed); - - renderer->save(); - - auto viewTransform = rive::computeAlignment(rive::Fit::contain, - rive::Alignment::center, - rive::AABB(0, 0, m_width, m_height), - m_CurrentScene->bounds()); - renderer->transform(viewTransform); - // Store the inverse view so we can later go from screen to world. - m_InverseViewTransform = viewTransform.invertOrIdentity(); - // post_mouse_event(artboard.get(), canvas->getTotalMatrix()); - m_CurrentScene->draw(renderer); - renderer->restore(); + } else { + m_ArtboardInstance->draw(renderer); // we're just a still-frame file/artboard } + + renderer->restore(); } void handleImgui() override {