Skip to content

Commit f21a556

Browse files
committed
ShaderManager: Add effectShapeChanges() method
1 parent 10f9639 commit f21a556

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

src/shadermanager.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,12 @@ void ShaderManager::setUniforms(QOpenGLShaderProgram *program, int textureUnit,
156156
program->setUniformValue(EFFECT_UNIFORM_NAME.at(effect), value);
157157
}
158158

159+
bool scratchcpprender::ShaderManager::effectShapeChanges(Effect effect)
160+
{
161+
Q_ASSERT(EFFECT_SHAPE_CHANGES.find(effect) != EFFECT_SHAPE_CHANGES.cend());
162+
return EFFECT_SHAPE_CHANGES.at(effect);
163+
}
164+
159165
void ShaderManager::registerEffects()
160166
{
161167
// Register graphic effects in libscratchcpp

src/shadermanager.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ class ShaderManager : public QObject
3434
static void getUniformValuesForEffects(const std::unordered_map<Effect, double> &effectValues, std::unordered_map<Effect, float> &dst);
3535
void setUniforms(QOpenGLShaderProgram *program, int textureUnit, const QSize skinSize, const std::unordered_map<Effect, double> &effectValues);
3636

37+
static bool effectShapeChanges(Effect effect);
38+
3739
private:
3840
struct Registrar
3941
{

test/shadermanager/shadermanager_test.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,3 +447,14 @@ TEST_F(ShaderManagerTest, MosaicEffectValue)
447447

448448
program->release();
449449
}
450+
451+
TEST_F(ShaderManagerTest, EffectShapeChanges)
452+
{
453+
ASSERT_FALSE(ShaderManager::effectShapeChanges(ShaderManager::Effect::Color));
454+
ASSERT_FALSE(ShaderManager::effectShapeChanges(ShaderManager::Effect::Brightness));
455+
ASSERT_FALSE(ShaderManager::effectShapeChanges(ShaderManager::Effect::Ghost));
456+
ASSERT_TRUE(ShaderManager::effectShapeChanges(ShaderManager::Effect::Fisheye));
457+
ASSERT_TRUE(ShaderManager::effectShapeChanges(ShaderManager::Effect::Whirl));
458+
ASSERT_TRUE(ShaderManager::effectShapeChanges(ShaderManager::Effect::Pixelate));
459+
ASSERT_TRUE(ShaderManager::effectShapeChanges(ShaderManager::Effect::Mosaic));
460+
}

0 commit comments

Comments
 (0)