| #include "rive/draw_rules.hpp" | |
| #include "rive/artboard.hpp" | |
| #include "rive/core_context.hpp" | |
| #include "rive/draw_target.hpp" | |
| using namespace rive; | |
| StatusCode DrawRules::onAddedDirty(CoreContext* context) { | |
| StatusCode result = Super::onAddedDirty(context); | |
| if (result != StatusCode::Ok) { | |
| return result; | |
| } | |
| auto coreObject = context->resolve(drawTargetId()); | |
| if (coreObject != nullptr && coreObject->is<DrawTarget>()) { | |
| m_ActiveTarget = reinterpret_cast<DrawTarget*>(coreObject); | |
| } | |
| return StatusCode::Ok; | |
| } | |
| StatusCode DrawRules::onAddedClean(CoreContext* context) { return StatusCode::Ok; } | |
| void DrawRules::drawTargetIdChanged() { | |
| auto coreObject = artboard()->resolve(drawTargetId()); | |
| if (coreObject == nullptr || !coreObject->is<DrawTarget>()) { | |
| m_ActiveTarget = nullptr; | |
| } else { | |
| m_ActiveTarget = reinterpret_cast<DrawTarget*>(coreObject); | |
| } | |
| artboard()->addDirt(ComponentDirt::DrawOrder); | |
| } |