1 #include "rive/draw_rules.hpp"
2 #include "rive/artboard.hpp"
3 #include "rive/core_context.hpp"
4 #include "rive/draw_target.hpp"
8 StatusCode DrawRules::onAddedDirty(CoreContext* context) {
9 StatusCode result = Super::onAddedDirty(context);
10 if (result != StatusCode::Ok) {
13 auto coreObject = context->resolve(drawTargetId());
14 if (coreObject != nullptr && coreObject->is<DrawTarget>()) {
15 m_ActiveTarget = reinterpret_cast<DrawTarget*>(coreObject);
18 return StatusCode::Ok;
21 StatusCode DrawRules::onAddedClean(CoreContext* context) { return StatusCode::Ok; }
23 void DrawRules::drawTargetIdChanged() {
24 auto coreObject = artboard()->resolve(drawTargetId());
25 if (coreObject == nullptr || !coreObject->is<DrawTarget>()) {
26 m_ActiveTarget = nullptr;
28 m_ActiveTarget = reinterpret_cast<DrawTarget*>(coreObject);
30 artboard()->addDirt(ComponentDirt::DrawOrder);