@@ -36,35 +36,27 @@ static const char *TEXTURE_UNIT_UNIFORM = "u_skin";
3636static const char *SKIN_SIZE_UNIFORM = " u_skinSize" ;
3737
3838static const std::unordered_map<ShaderManager::Effect, const char *> EFFECT_TO_NAME = {
39- { ShaderManager::Effect::Color, " color" },
40- { ShaderManager::Effect::Brightness, " brightness" },
41- { ShaderManager::Effect::Ghost, " ghost" },
42- { ShaderManager::Effect::Fisheye, " fisheye" },
43- { ShaderManager::Effect::Whirl, " whirl" }
39+ { ShaderManager::Effect::Color, " color" }, { ShaderManager::Effect::Brightness, " brightness" }, { ShaderManager::Effect::Ghost, " ghost" },
40+ { ShaderManager::Effect::Fisheye, " fisheye" }, { ShaderManager::Effect::Whirl, " whirl" }, { ShaderManager::Effect::Pixelate, " pixelate" }
4441};
4542
4643static const std::unordered_map<ShaderManager::Effect, const char *> EFFECT_UNIFORM_NAME = {
47- { ShaderManager::Effect::Color, " u_color" },
48- { ShaderManager::Effect::Brightness, " u_brightness" },
49- { ShaderManager::Effect::Ghost, " u_ghost" },
50- { ShaderManager::Effect::Fisheye, " u_fisheye" },
51- { ShaderManager::Effect::Whirl, " u_whirl" }
44+ { ShaderManager::Effect::Color, " u_color" }, { ShaderManager::Effect::Brightness, " u_brightness" }, { ShaderManager::Effect::Ghost, " u_ghost" },
45+ { ShaderManager::Effect::Fisheye, " u_fisheye" }, { ShaderManager::Effect::Whirl, " u_whirl" }, { ShaderManager::Effect::Pixelate, " u_pixelate" }
5246};
5347
5448static const std::unordered_map<ShaderManager::Effect, ConverterFunc> EFFECT_CONVERTER = {
5549 { ShaderManager::Effect::Color, [](float x) { return wrapClamp (x / 200 .0f , 0 .0f , 1 .0f ); } },
5650 { ShaderManager::Effect::Brightness, [](float x) { return std::clamp (x, -100 .0f , 100 .0f ) / 100 .0f ; } },
5751 { ShaderManager::Effect::Ghost, [](float x) { return 1 - std::clamp (x, 0 .0f , 100 .0f ) / 100 .0f ; } },
5852 { ShaderManager::Effect::Fisheye, [](float x) { return std::max (0 .0f , (x + 100 .0f ) / 100 .0f ); } },
59- { ShaderManager::Effect::Whirl, [](float x) { return x * (float )pi / 180 .0f ; } }
53+ { ShaderManager::Effect::Whirl, [](float x) { return x * (float )pi / 180 .0f ; } },
54+ { ShaderManager::Effect::Pixelate, [](float x) { return std::abs (x) / 10 .0f ; } }
6055};
6156
6257static const std::unordered_map<ShaderManager::Effect, bool > EFFECT_SHAPE_CHANGES = {
63- { ShaderManager::Effect::Color, false },
64- { ShaderManager::Effect::Brightness, false },
65- { ShaderManager::Effect::Ghost, false },
66- { ShaderManager::Effect::Fisheye, true },
67- { ShaderManager::Effect::Whirl, true }
58+ { ShaderManager::Effect::Color, false }, { ShaderManager::Effect::Brightness, false }, { ShaderManager::Effect::Ghost, false },
59+ { ShaderManager::Effect::Fisheye, true }, { ShaderManager::Effect::Whirl, true }, { ShaderManager::Effect::Pixelate, true }
6860};
6961
7062Q_GLOBAL_STATIC (ShaderManager, globalInstance)
0 commit comments