1 /* This file is part of GEGL.
2  *
3  * This library 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  * This library 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 this library; if not, see <https://www.gnu.org/licenses/>.
15  *
16  * Copyright 2006-2008 Øyvind Kolås <pippin@gimp.org>
17  */
18 
19 #ifndef __GEGL_BUFFER_BACKEND_H__
20 #define __GEGL_BUFFER_BACKEND_H__
21 
22 
23 G_BEGIN_DECLS
24 
25 typedef struct _GeglTile                  GeglTile;
26 typedef struct _GeglTileSource            GeglTileSource;
27 typedef struct _GeglTileHandler           GeglTileHandler;
28 
29 
30 typedef void   (*GeglTileCallback)       (GeglTile *tile,
31                                           gpointer user_data);
32 
33 
34 
35 /* All commands have the ability to pass commands to all tiles the handlers
36  * add abstraction to the commands the documentaiton given here is valid
37  * when the commands are issued to a full blown GeglBuffer instance.
38  */
39 typedef enum
40 {
41   GEGL_TILE_IDLE = 0,
42   GEGL_TILE_SET,
43   GEGL_TILE_GET,
44   GEGL_TILE_IS_CACHED,
45   GEGL_TILE_EXIST,
46   GEGL_TILE_VOID,
47   GEGL_TILE_FLUSH,
48   GEGL_TILE_REFETCH,
49   GEGL_TILE_REINIT,
50 
51   _GEGL_TILE_LAST_0_4_8_COMMAND,
52 
53   GEGL_TILE_COPY = _GEGL_TILE_LAST_0_4_8_COMMAND,
54 
55   GEGL_TILE_LAST_COMMAND
56 } GeglTileCommand;
57 
58 typedef struct _GeglTileCopyParams
59 {
60   GeglBuffer *dst_buffer;
61 
62   gint        dst_x;
63   gint        dst_y;
64   gint        dst_z;
65 } GeglTileCopyParams;
66 
67 G_END_DECLS
68 
69 #include "gegl-buffer.h"
70 #include "gegl-buffer-enums.h"
71 #include "gegl-tile-backend.h"
72 #include "gegl-tile-source.h"
73 #include "gegl-tile-handler.h"
74 #include "gegl-tile.h"
75 
76 #endif
77