#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;
}