@@ -32,13 +32,17 @@ void ScratchConfiguration::registerGraphicsEffect(std::shared_ptr<IGraphicsEffec
3232 if (!effect)
3333 return ;
3434
35- getImpl ()->graphicsEffects [effect->name ()] = effect;
35+ std::string lower = effect->name ();
36+ std::transform (lower.begin (), lower.end (), lower.begin (), [](char c) { return std::tolower (c); });
37+ getImpl ()->graphicsEffects [lower] = effect;
3638}
3739
3840/* ! Removes the given graphics effect. */
3941void ScratchConfiguration::removeGraphicsEffect (const std::string &name)
4042{
41- getImpl ()->graphicsEffects .erase (name);
43+ std::string lower = name;
44+ std::transform (lower.begin (), lower.end (), lower.begin (), [](char c) { return std::tolower (c); });
45+ getImpl ()->graphicsEffects .erase (lower);
4246}
4347
4448/* ! Returns the graphics effect with the given name, or nullptr if it isn't registered. */
@@ -48,15 +52,12 @@ IGraphicsEffect *ScratchConfiguration::getGraphicsEffect(const std::string &name
4852 std::string lower = name;
4953 std::transform (lower.begin (), lower.end (), lower.begin (), [](char c) { return std::tolower (c); });
5054
51- const auto &effects = getImpl ()->graphicsEffects ;
52-
53- for (const auto &[currentName, effect] : effects) {
54- std::string current = currentName;
55- std::transform (current.begin (), current.end (), current.begin (), [](char c) { return std::tolower (c); });
55+ auto it = getImpl ()->graphicsEffects .find (lower);
5656
57- if (current == lower)
58- return effect.get ();
59- }
57+ if (it == getImpl ()->graphicsEffects .cend ())
58+ return nullptr ;
59+ else
60+ return it->second .get ();
6061
6162 return nullptr ;
6263}
0 commit comments