forked from rive-app/rive-cpp-legacy
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdraw_rules.cpp
More file actions
38 lines (33 loc) · 987 Bytes
/
draw_rules.cpp
File metadata and controls
38 lines (33 loc) · 987 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#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 = static_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 = static_cast<DrawTarget*>(coreObject);
}
artboard()->addDirt(ComponentDirt::DrawOrder);
}