@@ -16,6 +16,7 @@ class ShaderManager : public QObject
16
16
public:
17
17
enum class Effect
18
18
{
19
+ NoEffect = 0 ,
19
20
Color = 1 << 0 ,
20
21
Brightness = 1 << 1 ,
21
22
Ghost = 1 << 2 ,
@@ -50,4 +51,49 @@ class ShaderManager : public QObject
50
51
QByteArray m_fragmentShaderSource;
51
52
};
52
53
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
+
53
99
} // namespace scratchcpprender
0 commit comments