1 /*
2  * Copyright (C) 2007 Google (Evan Stade)
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #ifndef _GDIPLUSCOLORMATRIX_H
20 #define _GDIPLUSCOLORMATRIX_H
21 
22 struct ColorMatrix
23 {
24     REAL m[5][5];
25 };
26 
27 enum ColorMatrixFlags
28 {
29     ColorMatrixFlagsDefault = 0,
30     ColorMatrixFlagsSkipGrays = 1,
31     ColorMatrixFlagsAltGray = 2
32 };
33 
34 enum ColorAdjustType
35 {
36     ColorAdjustTypeDefault,
37     ColorAdjustTypeBitmap,
38     ColorAdjustTypeBrush,
39     ColorAdjustTypePen,
40     ColorAdjustTypeText,
41     ColorAdjustTypeCount,
42     ColorAdjustTypeAny
43 };
44 
45 struct ColorMap
46 {
47     Color oldColor;
48     Color newColor;
49 };
50 
51 enum HistogramFormat
52 {
53     HistogramFormatARGB,
54     HistogramFormatPARGB,
55     HistogramFormatRGB,
56     HistogramFormatGray,
57     HistogramFormatB,
58     HistogramFormatG,
59     HistogramFormatR,
60     HistogramFormatA,
61 };
62 
63 #ifndef __cplusplus
64 
65 typedef enum ColorAdjustType ColorAdjustType;
66 typedef enum ColorMatrixFlags ColorMatrixFlags;
67 typedef enum HistogramFormat HistogramFormat;
68 typedef struct ColorMatrix ColorMatrix;
69 typedef struct ColorMap ColorMap;
70 
71 #endif /* end of c typedefs */
72 
73 #endif /* _GDIPLUSCOLORMATRIX_H */
74