1 /* This file is the public operation GEGL API, this API will change to much
2  * larger degrees than the api provided by gegl.h
3  *
4  * GEGL 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 3 of the License, or (at your option) any later version.
8  *
9  * GEGL 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 GEGL; if not, see <https://www.gnu.org/licenses/>.
16  *
17  * 2000-2008 Øyvind Kolås.
18  */
19 
20 #ifndef __GEGL_PLUGIN_H__
21 #define __GEGL_PLUGIN_H__
22 
23 #ifdef HAVE_CONFIG_H
24 #include "config.h"
25 #endif
26 
27 #include <math.h>
28 #include <string.h>
29 #include <glib-object.h>
30 #include <gmodule.h>
31 #include <gegl.h>
32 #include <gegl-math.h>
33 #include <gegl-types.h>
34 #include <gegl-paramspecs.h>
35 #include <gegl-audio-fragment.h>
36 
37 G_BEGIN_DECLS
38 
39 /* Extra types needed when coding operations */
40 typedef struct _GeglModule     GeglModule;
41 typedef struct _GeglModuleInfo GeglModuleInfo;
42 typedef struct _GeglModuleDB   GeglModuleDB;
43 
44 /***
45  * Writing GEGL operations
46  *
47  */
48 
49 /*  increment the ABI version each time one of the following changes:
50  *
51  *  - the libgeglmodule implementation (if the change affects modules).
52  *  - GeglOperation or one of it's base classes changes. (XXX:-
53  *    should be extended so a range of abi versions are accepted.
54  */
55 
56 #define GEGL_MODULE_ABI_VERSION 0x000A
57 
58 struct _GeglModuleInfo
59 {
60   guint32  abi_version;
61 };
62 
63 GType gegl_module_register_type (GTypeModule     *module,
64                                  GType            parent_type,
65                                  const gchar     *type_name,
66                                  const GTypeInfo *type_info,
67                                  GTypeFlags       flags);
68 
69 #include <operation/gegl-operation.h>
70 #include <operation/gegl-operation-context.h>
71 #include <operation/gegl-operation-filter.h>
72 #include <operation/gegl-operation-area-filter.h>
73 #include <operation/gegl-operation-point-filter.h>
74 #include <operation/gegl-operation-composer.h>
75 #include <operation/gegl-operation-composer3.h>
76 #include <operation/gegl-operation-point-composer.h>
77 #include <operation/gegl-operation-point-composer3.h>
78 #include <operation/gegl-operation-point-render.h>
79 #include <operation/gegl-operation-temporal.h>
80 #include <operation/gegl-operation-source.h>
81 #include <operation/gegl-operation-sink.h>
82 #include <operation/gegl-operation-meta.h>
83 #include <operation/gegl-extension-handler.h>
84 #include <operation/gegl-operation-handlers.h>
85 #include <operation/gegl-operation-property-keys.h>
86 
87 G_END_DECLS
88 
89 #endif  /* __GEGL_PLUGIN_H__ */
90