1 /* This file is part of GEGL
2  *
3  * GEGL is free software; you can redistribute it and/or
4  * modify it under the terms of the GNU Lesser General Public
5  * License as published by the Free Software Foundation; either
6  * version 3 of the License, or (at your option) any later version.
7  *
8  * GEGL is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11  * Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public
14  * License along with GEGL; if not, see <https://www.gnu.org/licenses/>.
15  *
16  * Copyright 2011 Michael Muré <batolettre@gmail.com>
17  *
18  */
19 
20 /* This file holds public enums from GEGL
21  *
22  * !!!!!!!!!!!! NOTE !!!!!!!!!!!!!!
23  *
24  * Normally, gegl-enums.c file would be be generated my glib-mkenums,
25  * but we use the enum values' registered names for translatable,
26  * human readable labels for the GUI, so gegl-enums.c is maintained
27  * manually.
28  *
29  * DON'T FORGET TO UPDATE gegl-enums.c AFTER CHANGING THIS HEADER
30  *
31  * !!!!!!!!!!!! NOTE !!!!!!!!!!!!!!
32  */
33 
34 #ifndef __GEGL_ENUMS_H__
35 #define __GEGL_ENUMS_H__
36 
37 G_BEGIN_DECLS
38 
39 typedef enum {
40   GEGL_DITHER_NONE,
41   GEGL_DITHER_FLOYD_STEINBERG,
42   GEGL_DITHER_BAYER,
43   GEGL_DITHER_RANDOM,
44   GEGL_DITHER_RANDOM_COVARIANT,
45   GEGL_DITHER_ARITHMETIC_ADD,
46   GEGL_DITHER_ARITHMETIC_ADD_COVARIANT,
47   GEGL_DITHER_ARITHMETIC_XOR,
48   GEGL_DITHER_ARITHMETIC_XOR_COVARIANT,
49   GEGL_DITHER_BLUE_NOISE,
50   GEGL_DITHER_BLUE_NOISE_COVARIANT,
51 } GeglDitherMethod;
52 
53 GType gegl_dither_method_get_type (void) G_GNUC_CONST;
54 
55 #define GEGL_TYPE_DITHER_METHOD (gegl_dither_method_get_type ())
56 
57 typedef enum {
58   GEGL_DISTANCE_METRIC_EUCLIDEAN,
59   GEGL_DISTANCE_METRIC_MANHATTAN,
60   GEGL_DISTANCE_METRIC_CHEBYSHEV
61 } GeglDistanceMetric;
62 
63 GType gegl_distance_metric_get_type (void) G_GNUC_CONST;
64 
65 #define GEGL_TYPE_DISTANCE_METRIC (gegl_distance_metric_get_type ())
66 
67 
68 typedef enum {
69   GEGL_ORIENTATION_HORIZONTAL,
70   GEGL_ORIENTATION_VERTICAL
71 } GeglOrientation;
72 
73 GType gegl_orientation_get_type (void) G_GNUC_CONST;
74 
75 #define GEGL_TYPE_ORIENTATION (gegl_orientation_get_type ())
76 
77 
78 enum _GeglBablVariant
79 {
80   GEGL_BABL_VARIANT_FLOAT=0,
81      /* pass this one to just ensure a format is float */
82   GEGL_BABL_VARIANT_LINEAR,
83      /* Y YA RGB RGBA         */
84   GEGL_BABL_VARIANT_NONLINEAR,
85      /* Y' Y'A R'G'B' R'G'B'A */
86   GEGL_BABL_VARIANT_PERCEPTUAL,
87      /* Y~ Y~A R~G~B~ R~G~B~A */
88   GEGL_BABL_VARIANT_LINEAR_PREMULTIPLIED,
89      /* YaA RaGaBaA           */
90   GEGL_BABL_VARIANT_PERCEPTUAL_PREMULTIPLIED,
91      /* Y~aA R~aG~aB~aA       */
92   GEGL_BABL_VARIANT_LINEAR_PREMULTIPLIED_IF_ALPHA,
93      /* Y YaA RGB RaGaBaA           */
94   GEGL_BABL_VARIANT_PERCEPTUAL_PREMULTIPLIED_IF_ALPHA,
95      /* Y~ Y~aA R~G~B~A R~aG~aB~aA       */
96   GEGL_BABL_VARIANT_ALPHA
97      /* add alpha if missing keep as premultiplied if already so  */
98 };
99 typedef enum _GeglBablVariant GeglBablVariant;
100 
101 GType gegl_babl_variant_get_type (void) G_GNUC_CONST;
102 
103 #define GEGL_TYPE_BABL_VARIANT (gegl_babl_variant_get_type ())
104 
105 
106 typedef enum {
107   GEGL_CACHE_POLICY_AUTO,
108   GEGL_CACHE_POLICY_NEVER,
109   GEGL_CACHE_POLICY_ALWAYS
110 } GeglCachePolicy;
111 
112 GType gegl_cache_policy_get_type (void) G_GNUC_CONST;
113 
114 #define GEGL_TYPE_CACHE_POLICY (gegl_cache_policy_get_type ())
115 
116 G_END_DECLS
117 
118 #endif /* __GEGL_ENUMS_H__ */
119