Skip to content

Commit f6aa3ea

Browse files
committed
Set graphic effect values from StageModel
1 parent 4bedf11 commit f6aa3ea

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/stagemodel.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
#include "stagemodel.h"
66
#include "renderedtarget.h"
7+
#include "graphicseffect.h"
78

89
using namespace scratchcpprender;
910

@@ -37,10 +38,16 @@ void StageModel::onVideoTransparencyChanged(int videoTransparency)
3738

3839
void StageModel::onGraphicsEffectChanged(libscratchcpp::IGraphicsEffect *effect, double value)
3940
{
41+
GraphicsEffect *graphicsEffect = dynamic_cast<GraphicsEffect *>(effect);
42+
43+
if (graphicsEffect && m_renderedTarget)
44+
m_renderedTarget->setGraphicEffect(graphicsEffect->effect(), value);
4045
}
4146

4247
void StageModel::onGraphicsEffectsCleared()
4348
{
49+
if (m_renderedTarget)
50+
m_renderedTarget->clearGraphicEffects();
4451
}
4552

4653
void StageModel::loadCostume()

test/target_models/stagemodel_test.cpp

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <QtTest/QSignalSpy>
22
#include <scratchcpp/costume.h>
33
#include <stagemodel.h>
4+
#include <graphicseffect.h>
45
#include <renderedtargetmock.h>
56

67
#include "../common.h"
@@ -38,6 +39,31 @@ TEST(StageModelTest, OnCostumeChanged)
3839
model.onCostumeChanged(&costume);
3940
}
4041

42+
TEST(StageModelTest, OnGraphicsEffectChanged)
43+
{
44+
StageModel model;
45+
RenderedTargetMock renderedTarget;
46+
model.setRenderedTarget(&renderedTarget);
47+
48+
GraphicsEffect effect1(ShaderManager::Effect::Brightness, "brightness");
49+
EXPECT_CALL(renderedTarget, setGraphicEffect(ShaderManager::Effect::Brightness, 78.4));
50+
model.onGraphicsEffectChanged(&effect1, 78.4);
51+
52+
GraphicsEffect effect2(ShaderManager::Effect::Ghost, "ghost");
53+
EXPECT_CALL(renderedTarget, setGraphicEffect(ShaderManager::Effect::Ghost, 0.0));
54+
model.onGraphicsEffectChanged(&effect2, 0.0);
55+
}
56+
57+
TEST(StageModelTest, OnGraphicsEffectsCleared)
58+
{
59+
StageModel model;
60+
RenderedTargetMock renderedTarget;
61+
model.setRenderedTarget(&renderedTarget);
62+
63+
EXPECT_CALL(renderedTarget, clearGraphicEffects());
64+
model.onGraphicsEffectsCleared();
65+
}
66+
4167
TEST(StageModelTest, RenderedTarget)
4268
{
4369
StageModel model;

0 commit comments

Comments
 (0)