Update rive-cpp to 2.0 version
[platform/core/uifw/rive-tizen.git] / submodule / rive-cpp / src / draw_rules.cpp
1 #include "rive/draw_rules.hpp"
2 #include "rive/artboard.hpp"
3 #include "rive/core_context.hpp"
4 #include "rive/draw_target.hpp"
5
6 using namespace rive;
7
8 StatusCode DrawRules::onAddedDirty(CoreContext* context) {
9     StatusCode result = Super::onAddedDirty(context);
10     if (result != StatusCode::Ok) {
11         return result;
12     }
13     auto coreObject = context->resolve(drawTargetId());
14     if (coreObject != nullptr && coreObject->is<DrawTarget>()) {
15         m_ActiveTarget = reinterpret_cast<DrawTarget*>(coreObject);
16     }
17
18     return StatusCode::Ok;
19 }
20
21 StatusCode DrawRules::onAddedClean(CoreContext* context) { return StatusCode::Ok; }
22
23 void DrawRules::drawTargetIdChanged() {
24     auto coreObject = artboard()->resolve(drawTargetId());
25     if (coreObject == nullptr || !coreObject->is<DrawTarget>()) {
26         m_ActiveTarget = nullptr;
27     } else {
28         m_ActiveTarget = reinterpret_cast<DrawTarget*>(coreObject);
29     }
30     artboard()->addDirt(ComponentDirt::DrawOrder);
31 }