Skip to content

Commit 694b69e

Browse files
committed
Make targets aware of engine
1 parent 0a94495 commit 694b69e

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/engine/internal/engine.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,8 +461,9 @@ void Engine::setTargets(const std::vector<std::shared_ptr<Target>> &newTargets)
461461
{
462462
m_targets = newTargets;
463463

464-
// Set engine and target in all blocks
464+
// Set engine in targets and engine and target in all blocks
465465
for (auto target : m_targets) {
466+
target->setEngine(this);
466467
auto blocks = target->blocks();
467468
for (auto block : blocks) {
468469
block->setEngine(this);

test/engine/engine_test.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,11 @@ TEST(EngineTest, Targets)
255255
auto t1 = std::make_shared<Target>();
256256
t1->setName("Sprite1");
257257
auto t2 = std::make_shared<Target>();
258+
auto block1 = std::make_shared<Block>("", "");
259+
auto block2 = std::make_shared<Block>("", "");
258260
t2->setName("Sprite2");
261+
t2->addBlock(block1);
262+
t2->addBlock(block2);
259263
auto t3 = std::make_shared<Target>();
260264
t3->setName("Stage");
261265
engine.setTargets({ t1, t2, t3 });
@@ -271,4 +275,11 @@ TEST(EngineTest, Targets)
271275
ASSERT_EQ(engine.findTarget("Sprite1"), 0);
272276
ASSERT_EQ(engine.findTarget("Sprite2"), 1);
273277
ASSERT_EQ(engine.findTarget("Stage"), 2);
278+
279+
ASSERT_EQ(t1->engine(), &engine);
280+
ASSERT_EQ(t2->engine(), &engine);
281+
ASSERT_EQ(t3->engine(), &engine);
282+
283+
ASSERT_EQ(block1->engine(), &engine);
284+
ASSERT_EQ(block2->engine(), &engine);
274285
}

0 commit comments

Comments
 (0)