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