@@ -36,13 +36,13 @@ static const char *TEXTURE_UNIT_UNIFORM = "u_skin";
36
36
static const char *SKIN_SIZE_UNIFORM = " u_skinSize" ;
37
37
38
38
static const std::unordered_map<ShaderManager::Effect, const char *> EFFECT_TO_NAME = {
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 " }
39
+ { ShaderManager::Effect::Color, " color" }, { ShaderManager::Effect::Brightness, " brightness" }, { ShaderManager::Effect::Ghost, " ghost" }, { ShaderManager::Effect::Fisheye, " fisheye " },
40
+ { ShaderManager::Effect::Whirl , " whirl " }, { ShaderManager::Effect::Pixelate , " pixelate " }, { ShaderManager::Effect::Mosaic , " mosaic " }
41
41
};
42
42
43
43
static const std::unordered_map<ShaderManager::Effect, const char *> EFFECT_UNIFORM_NAME = {
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 " }
44
+ { ShaderManager::Effect::Color, " u_color" }, { ShaderManager::Effect::Brightness, " u_brightness" }, { ShaderManager::Effect::Ghost, " u_ghost" }, { ShaderManager::Effect::Fisheye, " u_fisheye " },
45
+ { ShaderManager::Effect::Whirl , " u_whirl " }, { ShaderManager::Effect::Pixelate , " u_pixelate " }, { ShaderManager::Effect::Mosaic , " u_mosaic " }
46
46
};
47
47
48
48
static const std::unordered_map<ShaderManager::Effect, ConverterFunc> EFFECT_CONVERTER = {
@@ -51,12 +51,13 @@ static const std::unordered_map<ShaderManager::Effect, ConverterFunc> EFFECT_CON
51
51
{ ShaderManager::Effect::Ghost, [](float x) { return 1 - std::clamp (x, 0 .0f , 100 .0f ) / 100 .0f ; } },
52
52
{ ShaderManager::Effect::Fisheye, [](float x) { return std::max (0 .0f , (x + 100 .0f ) / 100 .0f ); } },
53
53
{ ShaderManager::Effect::Whirl, [](float x) { return x * (float )pi / 180 .0f ; } },
54
- { ShaderManager::Effect::Pixelate, [](float x) { return std::abs (x) / 10 .0f ; } }
54
+ { ShaderManager::Effect::Pixelate, [](float x) { return std::abs (x) / 10 .0f ; } },
55
+ { ShaderManager::Effect::Mosaic, [](float x) { return std::max (1 .0f , std::min (std::round ((std::abs (x) + 10 .0f ) / 10 .0f ), 512 .0f )); } }
55
56
};
56
57
57
58
static const std::unordered_map<ShaderManager::Effect, bool > EFFECT_SHAPE_CHANGES = {
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 }
59
+ { ShaderManager::Effect::Color, false }, { ShaderManager::Effect::Brightness, false }, { ShaderManager::Effect::Ghost, false }, { ShaderManager::Effect::Fisheye, true },
60
+ { ShaderManager::Effect::Whirl , true }, { ShaderManager::Effect::Pixelate , true }, { ShaderManager::Effect::Mosaic , true }
60
61
};
61
62
62
63
Q_GLOBAL_STATIC (ShaderManager, globalInstance)
0 commit comments