switch to enum
diff --git a/include/rive/artboard.hpp b/include/rive/artboard.hpp
index 7b7533c..8233fa4 100644
--- a/include/rive/artboard.hpp
+++ b/include/rive/artboard.hpp
@@ -66,7 +66,13 @@
void onDirty(ComponentDirt dirt) override;
bool advance(double elapsedSeconds);
- void draw(Renderer* renderer, bool drawBackground = true);
+
+ enum class DrawOption {
+ kNormal,
+ kHideBG,
+ kHideFG,
+ };
+ void draw(Renderer* renderer, DrawOption = DrawOption::kNormal);
CommandPath* clipPath() const { return m_ClipPath; }
CommandPath* backgroundPath() const { return m_BackgroundPath; }
diff --git a/src/artboard.cpp b/src/artboard.cpp
index 0bbca01..f060d11 100644
--- a/src/artboard.cpp
+++ b/src/artboard.cpp
@@ -452,7 +452,7 @@
return updateComponents();
}
-void Artboard::draw(Renderer* renderer, bool drawBackground)
+void Artboard::draw(Renderer* renderer, DrawOption option)
{
renderer->save();
if (clip())
@@ -468,7 +468,7 @@
renderer->transform(artboardTransform);
}
- if (drawBackground)
+ if (option != DrawOption::kHideBG)
{
for (auto shapePaint : m_ShapePaints)
{
@@ -476,14 +476,17 @@
}
}
- for (auto drawable = m_FirstDrawable; drawable != nullptr;
- drawable = drawable->prev)
+ if (option != DrawOption::kHideFG)
{
- if (drawable->isHidden())
+ for (auto drawable = m_FirstDrawable; drawable != nullptr;
+ drawable = drawable->prev)
{
- continue;
+ if (drawable->isHidden())
+ {
+ continue;
+ }
+ drawable->draw(renderer);
}
- drawable->draw(renderer);
}
renderer->restore();