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();