@@ -16,6 +16,7 @@ class ShaderManager : public QObject
1616 public:
1717 enum class Effect
1818 {
19+ NoEffect = 0 ,
1920 Color = 1 << 0 ,
2021 Brightness = 1 << 1 ,
2122 Ghost = 1 << 2 ,
@@ -50,4 +51,49 @@ class ShaderManager : public QObject
5051 QByteArray m_fragmentShaderSource;
5152};
5253
54+ inline ShaderManager::Effect operator |(ShaderManager::Effect a, ShaderManager::Effect b)
55+ {
56+ return static_cast <ShaderManager::Effect>(static_cast <int >(a) | static_cast <int >(b));
57+ }
58+
59+ inline ShaderManager::Effect operator |=(ShaderManager::Effect &a, ShaderManager::Effect b)
60+ {
61+ return static_cast <ShaderManager::Effect>((int &)a |= static_cast <int >(b));
62+ }
63+
64+ inline ShaderManager::Effect operator &(ShaderManager::Effect a, ShaderManager::Effect b)
65+ {
66+ return static_cast <ShaderManager::Effect>(static_cast <int >(a) & static_cast <int >(b));
67+ }
68+
69+ inline ShaderManager::Effect operator &=(ShaderManager::Effect &a, ShaderManager::Effect b)
70+ {
71+ return static_cast <ShaderManager::Effect>((int &)a &= static_cast <int >(b));
72+ }
73+
74+ inline ShaderManager::Effect operator ~(ShaderManager::Effect a)
75+ {
76+ return static_cast <ShaderManager::Effect>(~static_cast <int >(a));
77+ }
78+
79+ inline bool operator ==(ShaderManager::Effect a, int b)
80+ {
81+ return static_cast <int >(a) == b;
82+ }
83+
84+ inline bool operator ==(int a, ShaderManager::Effect b)
85+ {
86+ return a == static_cast <int >(b);
87+ }
88+
89+ inline bool operator !=(ShaderManager::Effect a, int b)
90+ {
91+ return static_cast <int >(a) != b;
92+ }
93+
94+ inline bool operator !=(int a, ShaderManager::Effect b)
95+ {
96+ return a != static_cast <int >(b);
97+ }
98+
5399} // namespace scratchcpprender
0 commit comments