Gamedev Framework (gf)  0.7.0
A C++14 framework for 2D games
Effects.h
1 /*
2  * Gamedev Framework (gf)
3  * Copyright (C) 2016-2018 Julien Bernard
4  *
5  * This software is provided 'as-is', without any express or implied
6  * warranty. In no event will the authors be held liable for any damages
7  * arising from the use of this software.
8  *
9  * Permission is granted to anyone to use this software for any purpose,
10  * including commercial applications, and to alter it and redistribute it
11  * freely, subject to the following restrictions:
12  *
13  * 1. The origin of this software must not be misrepresented; you must not
14  * claim that you wrote the original software. If you use this software
15  * in a product, an acknowledgment in the product documentation would be
16  * appreciated but is not required.
17  * 2. Altered source versions must be plainly marked as such, and must not be
18  * misrepresented as being the original software.
19  * 3. This notice may not be removed or altered from any source distribution.
20  */
21 #ifndef GF_EFFECTS_H
22 #define GF_EFFECTS_H
23 
24 #include "Effect.h"
25 #include "Portability.h"
26 
27 namespace gf {
28 #ifndef DOXYGEN_SHOULD_SKIP_THIS
29 inline namespace v1 {
30 #endif
31 
38  class GF_API DefaultEffect : public Effect {
39  public:
43  DefaultEffect();
44  };
45 
46 
53  class GF_API AntiAliasingEffect : public Effect {
54  public:
59 
65  void setFramebufferSize(Vector2f size);
66  };
67 
68 
78  class GF_API ColorMatrixEffect : public Effect {
79  public:
84 
94  void setColorMatrix(const Matrix4f& mat);
95  };
96 
101  class GF_API ColorEffect : public ColorMatrixEffect {
102  public:
106  enum Type {
113  };
114 
120  ColorEffect(Type type);
121 
127  void setType(Type type);
128  };
129 
140  class GF_API ColorBlindEffect : public ColorMatrixEffect {
141  public:
145  enum Type {
155  };
156 
162  ColorBlindEffect(Type type = Normal);
163 
169  void setType(Type type);
170  };
171 
172 
180  class GF_API EdgeEffect : public Effect {
181  public:
185  EdgeEffect();
186 
192  void setFramebufferSize(Vector2f size);
193  };
194 
195 #ifndef DOXYGEN_SHOULD_SKIP_THIS
196 }
197 #endif
198 }
199 
200 #endif // GF_EFFECTS_H
Achromatopsia (rod monochromacy, very rare)
Definition: Effects.h:153
Cool colors.
Definition: Effects.h:112
Night vision.
Definition: Effects.h:110
Type
Type of color effect.
Definition: Effects.h:106
Edge detector.
Definition: Effects.h:180
Generic color matrix effect.
Definition: Effects.h:78
Type
Type of color blindness.
Definition: Effects.h:145
Sepia colors.
Definition: Effects.h:109
General purpose math matrix.
Definition: Matrix.h:60
Tritanomaly (blue trichromacy, very rare)
Definition: Effects.h:152
The namespace for gf classes.
Definition: Action.h:34
Protanomaly (red trichromacy, 1% of males affected)
Definition: Effects.h:148
No effect.
Definition: Effects.h:107
Grayscale.
Definition: Effects.h:108
Simulation of color blindness.
Definition: Effects.h:140
Deuteranopia (green dichromacy, 1% of males affected)
Definition: Effects.h:149
A post-processing effect.
Definition: Effect.h:38
Simple color effects.
Definition: Effects.h:101
Protanopia (red dichromacy, 1% of males affected)
Definition: Effects.h:147
Achromatomaly (blue cone monochromacy, very rare)
Definition: Effects.h:154
Default effect.
Definition: Effects.h:38
Warm colors.
Definition: Effects.h:111
Normal vision.
Definition: Effects.h:146
Deuteranomaly (green trichromacy, 6% of males affected)
Definition: Effects.h:150
Anti-aliasing effect.
Definition: Effects.h:53
Tritanopia (blue dichromacy, rare)
Definition: Effects.h:151