#include "rive/draw_target.hpp"
#include "rive/core_context.hpp"
#include "rive/drawable.hpp"
#include "rive/artboard.hpp"

using namespace rive;

StatusCode DrawTarget::onAddedDirty(CoreContext* context)
{
	StatusCode code = Super::onAddedDirty(context);
	if (code != StatusCode::Ok)
	{
		return code;
	}
	auto coreObject = context->resolve(drawableId());
	if (coreObject == nullptr || !coreObject->is<Drawable>())
	{
		return StatusCode::MissingObject;
	}
	m_Drawable = reinterpret_cast<Drawable*>(coreObject);
	return StatusCode::Ok;
}

StatusCode DrawTarget::onAddedClean(CoreContext* context)
{
	return StatusCode::Ok;
}

void DrawTarget::placementValueChanged()
{
	artboard()->addDirt(ComponentDirt::DrawOrder);
}