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 2003 Calvin Williamson
17  *           2006-2008 Øyvind Kolås
18  *           2013 Daniel Sabo
19  */
20 
21 #ifndef __GEGL_OPERATION_CONTEXT_H__
22 #define __GEGL_OPERATION_CONTEXT_H__
23 
24 G_BEGIN_DECLS
25 
26 GeglBuffer     *gegl_operation_context_get_target      (GeglOperationContext *self,
27                                                         const gchar          *padname);
28 GeglBuffer     *gegl_operation_context_get_source      (GeglOperationContext *self,
29                                                         const gchar          *padname) G_GNUC_DEPRECATED;
30 GObject        *gegl_operation_context_dup_object      (GeglOperationContext *self,
31                                                         const gchar          *padname);
32 GObject        *gegl_operation_context_get_object      (GeglOperationContext *context,
33                                                         const gchar          *padname);
34 
35 void            gegl_operation_context_set_object      (GeglOperationContext *context,
36                                                         const gchar          *padname,
37                                                         GObject              *data);
38 void            gegl_operation_context_take_object     (GeglOperationContext *context,
39                                                         const gchar          *padname,
40                                                         GObject              *data);
41 
42 void            gegl_operation_context_purge           (GeglOperationContext *self);
43 
44 gint            gegl_operation_context_get_level       (GeglOperationContext *self);
45 
46 /* the rest of these functions are for internal use only */
47 
48 GeglBuffer *    gegl_operation_context_get_output_maybe_in_place (GeglOperation        *operation,
49                                                                   GeglOperationContext *context,
50                                                                   GeglBuffer           *input,
51                                                                   const GeglRectangle  *roi);
52 GeglBuffer *    gegl_operation_context_dup_input_maybe_copy      (GeglOperationContext *context,
53                                                                   const gchar          *padname,
54                                                                   const GeglRectangle  *roi);
55 
56 
57 GeglOperationContext *gegl_operation_context_node_get_context (GeglOperationContext *context,
58                                                                GeglNode             *node);
59 
60 
61 G_END_DECLS
62 
63 #endif /* __GEGL_OPERATION_CONTEXT_H__ */
64