Skip to content

Commit 4bedf11

Browse files
committed
Set graphic effect values from SpriteModel
1 parent 71ddc53 commit 4bedf11

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/spritemodel.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "spritemodel.h"
88
#include "renderedtarget.h"
99
#include "ipenlayer.h"
10+
#include "graphicseffect.h"
1011

1112
namespace scratchcpprender
1213
{
@@ -100,10 +101,16 @@ void SpriteModel::onLayerOrderChanged(int layerOrder)
100101

101102
void SpriteModel::onGraphicsEffectChanged(libscratchcpp::IGraphicsEffect *effect, double value)
102103
{
104+
GraphicsEffect *graphicsEffect = dynamic_cast<GraphicsEffect *>(effect);
105+
106+
if (graphicsEffect && m_renderedTarget)
107+
m_renderedTarget->setGraphicEffect(graphicsEffect->effect(), value);
103108
}
104109

105110
void SpriteModel::onGraphicsEffectsCleared()
106111
{
112+
if (m_renderedTarget)
113+
m_renderedTarget->clearGraphicEffects();
107114
}
108115

109116
libscratchcpp::Rect SpriteModel::boundingRect() const

test/target_models/spritemodel_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 <spritemodel.h>
4+
#include <graphicseffect.h>
45
#include <renderedtargetmock.h>
56
#include <penlayermock.h>
67
#include <enginemock.h>
@@ -218,6 +219,31 @@ TEST(SpriteModelTest, OnLayerOrderChanged)
218219
model.onLayerOrderChanged(7);
219220
}
220221

222+
TEST(SpriteModelTest, OnGraphicsEffectChanged)
223+
{
224+
SpriteModel model;
225+
RenderedTargetMock renderedTarget;
226+
model.setRenderedTarget(&renderedTarget);
227+
228+
GraphicsEffect effect1(ShaderManager::Effect::Brightness, "brightness");
229+
EXPECT_CALL(renderedTarget, setGraphicEffect(ShaderManager::Effect::Brightness, 78.4));
230+
model.onGraphicsEffectChanged(&effect1, 78.4);
231+
232+
GraphicsEffect effect2(ShaderManager::Effect::Ghost, "ghost");
233+
EXPECT_CALL(renderedTarget, setGraphicEffect(ShaderManager::Effect::Ghost, 0.0));
234+
model.onGraphicsEffectChanged(&effect2, 0.0);
235+
}
236+
237+
TEST(SpriteModelTest, OnGraphicsEffectsCleared)
238+
{
239+
SpriteModel model;
240+
RenderedTargetMock renderedTarget;
241+
model.setRenderedTarget(&renderedTarget);
242+
243+
EXPECT_CALL(renderedTarget, clearGraphicEffects());
244+
model.onGraphicsEffectsCleared();
245+
}
246+
221247
TEST(SpriteModelTest, BoundingRect)
222248
{
223249
SpriteModel model;

0 commit comments

Comments
 (0)