1 /* GIMP - The GNU Image Manipulation Program
2  * Copyright (C) 1995 Spencer Kimball and Peter Mattis
3  *
4  * operations-types.h
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef __OPERATIONS_TYPES_H__
21 #define __OPERATIONS_TYPES_H__
22 
23 
24 #include <gegl-types.h>
25 
26 #include "gegl/gimp-gegl-types.h"
27 
28 #include "operations-enums.h"
29 
30 
31 /*  operations  */
32 
33 typedef struct _GimpOperationPointFilter        GimpOperationPointFilter;
34 typedef struct _GimpOperationLayerMode          GimpOperationLayerMode;
35 
36 
37 /*  operation config objects  */
38 
39 typedef struct _GimpOperationSettings           GimpOperationSettings;
40 
41 typedef struct _GimpBrightnessContrastConfig    GimpBrightnessContrastConfig;
42 typedef struct _GimpCageConfig                  GimpCageConfig;
43 typedef struct _GimpColorBalanceConfig          GimpColorBalanceConfig;
44 typedef struct _GimpColorizeConfig              GimpColorizeConfig;
45 typedef struct _GimpCurvesConfig                GimpCurvesConfig;
46 typedef struct _GimpDesaturateConfig            GimpDesaturateConfig;
47 typedef struct _GimpHueSaturationConfig         GimpHueSaturationConfig;
48 typedef struct _GimpLevelsConfig                GimpLevelsConfig;
49 typedef struct _GimpPosterizeConfig             GimpPosterizeConfig;
50 typedef struct _GimpThresholdConfig             GimpThresholdConfig;
51 
52 
53 /*  non-object types  */
54 
55 typedef struct _GimpCagePoint                   GimpCagePoint;
56 
57 
58 /*  functions  */
59 
60 typedef gboolean (* GimpLayerModeFunc)      (GeglOperation          *operation,
61                                              void                   *in,
62                                              void                   *aux,
63                                              void                   *mask,
64                                              void                   *out,
65                                              glong                   samples,
66                                              const GeglRectangle    *roi,
67                                              gint                    level);
68 
69 typedef  void    (* GimpLayerModeBlendFunc) (GeglOperation          *operation,
70                                              const gfloat           *in,
71                                              const gfloat           *layer,
72                                              gfloat                 *out,
73                                              gint                    samples);
74 
75 
76 #endif /* __OPERATIONS_TYPES_H__ */
77