Reactos
1/*
2 * GdiPlusEffects.h
3 *
4 * Windows GDI+
5 *
6 * This file is part of the w32api package.
7 *
8 * THIS SOFTWARE IS NOT COPYRIGHTED
9 *
10 * This source code is offered for use in the public domain. You may
11 * use, modify or distribute it freely.
12 *
13 * This code is distributed in the hope that it will be useful but
14 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
15 * DISCLAIMED. This includes but is not limited to warranties of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17 */
18
19#ifndef _GDIPLUSEFFECTS_H
20#define _GDIPLUSEFFECTS_H
21
22typedef enum CurveAdjustments
23{
24 AdjustExposure = 0,
25 AdjustDensity = 1,
26 AdjustContrast = 2,
27 AdjustHighlight = 3,
28 AdjustShadow = 4,
29 AdjustMidtone = 5,
30 AdjustWhiteSaturation = 6,
31 AdjustBlackSaturation = 7
32} CurveAdjustments;
33
34typedef enum CurveChannel
35{
36 CurveChannelAll = 0,
37 CurveChannelRed = 1,
38 CurveChannelGreen = 2,
39 CurveChannelBlue = 3
40} CurveChannel;
41
42typedef struct BlurParams
43{
44 REAL radius;
45 BOOL expandEdge;
46} BlurParams;
47
48typedef struct BrightnessContrastParams
49{
50 INT brightnessLevel;
51 INT contrastLevel;
52} BrightnessContrastParams;
53
54typedef struct ColorBalanceParams
55{
56 INT cyanRed;
57 INT magentaGreen;
58 INT yellowBlue;
59} ColorBalanceParams;
60
61typedef struct ColorCurveParams
62{
63 CurveAdjustments adjustment;
64 CurveChannel channel;
65 INT adjustValue;
66} ColorCurveParams;
67
68typedef struct ColorLUTParams
69{
70 ColorChannelLUT lutB;
71 ColorChannelLUT lutG;
72 ColorChannelLUT lutR;
73 ColorChannelLUT lutA;
74} ColorLUTParams;
75
76typedef struct HueSaturationLightnessParams
77{
78 INT hueLevel;
79 INT saturationLevel;
80 INT lightnessLevel;
81} HueSaturationLightnessParams;
82
83typedef struct LevelsParams
84{
85 INT highlight;
86 INT midtone;
87 INT shadow;
88} LevelsParams;
89
90typedef struct RedEyeCorrectionParams
91{
92 UINT numberOfAreas;
93 RECT *areas;
94} RedEyeCorrectionParams;
95
96typedef struct SharpenParams
97{
98 REAL radius;
99 REAL amount;
100} SharpenParams;
101
102typedef struct TintParams
103{
104 INT hue;
105 INT amount;
106} TintParams;
107
108class Effect
109{
110 public:
111 Effect()
112 {
113 }
114
115 VOID *
116 GetAuxData() const
117 {
118 return NULL;
119 }
120
121 INT
122 GetAuxDataSize()
123 {
124 return 0;
125 }
126
127 Status
128 GetParameterSize(UINT *size)
129 {
130 return NotImplemented;
131 }
132
133 VOID
134 UseAuxData(const BOOL useAuxDataFlag)
135 {
136 }
137};
138
139class Blur : public Effect
140{
141 public:
142 Blur()
143 {
144 }
145
146 Status
147 GetParameters(UINT *size, BlurParams *parameters)
148 {
149 return NotImplemented;
150 }
151
152 Status
153 SetParameters(const BlurParams *parameters)
154 {
155 return NotImplemented;
156 }
157};
158
159class BrightnessContrast : public Effect
160{
161 public:
162 BrightnessContrast()
163 {
164 }
165
166 Status
167 GetParameters(UINT *size, BrightnessContrastParams *parameters)
168 {
169 return NotImplemented;
170 }
171
172 Status
173 SetParameters(const BrightnessContrastParams *parameters)
174 {
175 return NotImplemented;
176 }
177};
178
179class ColorBalance : public Effect
180{
181 public:
182 ColorBalance()
183 {
184 }
185
186 Status
187 GetParameters(UINT *size, ColorBalanceParams *parameters)
188 {
189 return NotImplemented;
190 }
191
192 Status
193 SetParameters(ColorBalanceParams *parameters)
194 {
195 return NotImplemented;
196 }
197};
198
199class ColorCurve : public Effect
200{
201 public:
202 ColorCurve()
203 {
204 }
205
206 Status
207 GetParameters(UINT *size, ColorCurveParams *parameters)
208 {
209 return NotImplemented;
210 }
211
212 Status
213 SetParameters(const ColorCurveParams *parameters)
214 {
215 return NotImplemented;
216 }
217};
218
219class ColorMatrixEffect : public Effect
220{
221 public:
222 ColorMatrixEffect()
223 {
224 }
225
226 Status
227 GetParameters(UINT *size, ColorMatrix *matrix)
228 {
229 return NotImplemented;
230 }
231
232 Status
233 SetParameters(const ColorMatrix *matrix)
234 {
235 return NotImplemented;
236 }
237};
238
239class HueSaturationLightness : public Effect
240{
241 public:
242 HueSaturationLightness()
243 {
244 }
245
246 Status
247 GetParameters(UINT *size, HueSaturationLightnessParams *parameters)
248 {
249 return NotImplemented;
250 }
251
252 Status
253 SetParameters(const HueSaturationLightnessParams *parameters)
254 {
255 return NotImplemented;
256 }
257};
258
259class Levels : public Effect
260{
261 public:
262 Levels()
263 {
264 }
265
266 Status
267 GetParameters(UINT *size, LevelsParams *parameters)
268 {
269 return NotImplemented;
270 }
271
272 Status
273 SetParameters(const LevelsParams *parameters)
274 {
275 return NotImplemented;
276 }
277};
278
279class RedEyeCorrection : public Effect
280{
281 public:
282 RedEyeCorrection()
283 {
284 }
285
286 Status
287 GetParameters(UINT *size, RedEyeCorrectionParams *parameters)
288 {
289 return NotImplemented;
290 }
291
292 Status
293 SetParameters(const RedEyeCorrectionParams *parameters)
294 {
295 return NotImplemented;
296 }
297};
298
299class Sharpen
300{
301 public:
302 Sharpen()
303 {
304 }
305
306 Status
307 GetParameters(UINT *size, SharpenParams *parameters)
308 {
309 return NotImplemented;
310 }
311
312 Status
313 SetParameters(const SharpenParams *parameters)
314 {
315 return NotImplemented;
316 }
317};
318
319class Tint : Effect
320{
321 public:
322 Tint()
323 {
324 }
325
326 Status
327 GetParameters(UINT *size, TintParams *parameters)
328 {
329 return NotImplemented;
330 }
331
332 Status
333 SetParameters(const TintParams *parameters)
334 {
335 return NotImplemented;
336 }
337};
338
339#endif /* _GDIPLUSEFFECTS_H */