propagate volume to nested artboards

propagate volume to nested artboards

Diffs=
2828b7b01 propagate volume to nested artboards (#7067)

Co-authored-by: hernan <hernan@rive.app>
diff --git a/.rive_head b/.rive_head
index 35589d3..929a551 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-4a9947630d3848ff70813cf5e2d8718adb9a1b90
+2828b7b013811f1f4b0b0e2ee0f6d9b23c73878b
diff --git a/src/artboard.cpp b/src/artboard.cpp
index 074e0cd..0b4778d 100644
--- a/src/artboard.cpp
+++ b/src/artboard.cpp
@@ -810,7 +810,18 @@
 }
 
 float Artboard::volume() const { return m_volume; }
-void Artboard::volume(float value) { m_volume = value; }
+void Artboard::volume(float value)
+{
+    m_volume = value;
+    for (auto nestedArtboard : m_NestedArtboards)
+    {
+        auto artboard = nestedArtboard->artboard();
+        if (artboard != nullptr)
+        {
+            artboard->volume(value);
+        }
+    }
+}
 
 ////////// ArtboardInstance
 
diff --git a/src/nested_artboard.cpp b/src/nested_artboard.cpp
index 8b80df4..18ff098 100644
--- a/src/nested_artboard.cpp
+++ b/src/nested_artboard.cpp
@@ -38,6 +38,7 @@
     }
     m_Artboard->frameOrigin(false);
     m_Artboard->opacity(renderOpacity());
+    m_Artboard->volume(artboard->volume());
     m_Instance = nullptr;
     if (artboard->isInstance())
     {