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