@@ -32,20 +32,29 @@ static const QString SHADER_PREFIX = "#version 140\n";
3232
3333static const char *TEXTURE_UNIT_UNIFORM = " u_skin" ;
3434
35- static const std::unordered_map<ShaderManager::Effect, const char *>
36- EFFECT_TO_NAME = { { ShaderManager::Effect::Color, " color" }, { ShaderManager::Effect::Brightness, " brightness" }, { ShaderManager::Effect::Ghost, " ghost" } };
35+ static const std::unordered_map<ShaderManager::Effect, const char *> EFFECT_TO_NAME = {
36+ { ShaderManager::Effect::Color, " color" },
37+ { ShaderManager::Effect::Brightness, " brightness" },
38+ { ShaderManager::Effect::Ghost, " ghost" },
39+ { ShaderManager::Effect::Fisheye, " fisheye" }
40+ };
3741
38- static const std::unordered_map<ShaderManager::Effect, const char *>
39- EFFECT_UNIFORM_NAME = { { ShaderManager::Effect::Color, " u_color" }, { ShaderManager::Effect::Brightness, " u_brightness" }, { ShaderManager::Effect::Ghost, " u_ghost" } };
42+ static const std::unordered_map<ShaderManager::Effect, const char *> EFFECT_UNIFORM_NAME = {
43+ { ShaderManager::Effect::Color, " u_color" },
44+ { ShaderManager::Effect::Brightness, " u_brightness" },
45+ { ShaderManager::Effect::Ghost, " u_ghost" },
46+ { ShaderManager::Effect::Fisheye, " u_fisheye" }
47+ };
4048
4149static const std::unordered_map<ShaderManager::Effect, ConverterFunc> EFFECT_CONVERTER = {
4250 { ShaderManager::Effect::Color, [](float x) { return wrapClamp (x / 200 .0f , 0 .0f , 1 .0f ); } },
4351 { ShaderManager::Effect::Brightness, [](float x) { return std::clamp (x, -100 .0f , 100 .0f ) / 100 .0f ; } },
44- { ShaderManager::Effect::Ghost, [](float x) { return 1 - std::clamp (x, 0 .0f , 100 .0f ) / 100 .0f ; } }
52+ { ShaderManager::Effect::Ghost, [](float x) { return 1 - std::clamp (x, 0 .0f , 100 .0f ) / 100 .0f ; } },
53+ { ShaderManager::Effect::Fisheye, [](float x) { return std::max (0 .0f , (x + 100 .0f ) / 100 .0f ); } }
4554};
4655
4756static const std::unordered_map<ShaderManager::Effect, bool >
48- EFFECT_SHAPE_CHANGES = { { ShaderManager::Effect::Color, false }, { ShaderManager::Effect::Brightness, false }, { ShaderManager::Effect::Ghost, false } };
57+ EFFECT_SHAPE_CHANGES = { { ShaderManager::Effect::Color, false }, { ShaderManager::Effect::Brightness, false }, { ShaderManager::Effect::Ghost, false }, { ShaderManager::Effect::Fisheye, true } };
4958
5059Q_GLOBAL_STATIC (ShaderManager, globalInstance)
5160
0 commit comments