#include "rive/drawable.hpp"
#include "rive/artboard.hpp"
#include "rive/shapes/clipping_shape.hpp"
#include "rive/shapes/path_composer.hpp"
#include "rive/shapes/shape.hpp"

using namespace rive;

void Drawable::addClippingShape(ClippingShape* shape)
{
    m_ClippingShapes.push_back(shape);
}

bool Drawable::clip(Renderer* renderer) const
{
    if (m_ClippingShapes.size() == 0)
    {
        return false;
    }

    renderer->save();

    for (auto clippingShape : m_ClippingShapes)
    {
        if (!clippingShape->isVisible())
        {
            continue;
        }

        RenderPath* renderPath = clippingShape->renderPath();

        assert(renderPath != nullptr);
        renderer->clipPath(renderPath);
    }
    return true;
}