GeglOperationContext
typedef struct {
GeglOperation *operation;
GSList *property; /* used internally for data being exchanged */
GeglRectangle need_rect; /* the rectangle needed from the operation */
GeglRectangle result_rect; /* the result computation rectangle for the operation ,
(will differ if the needed rect extends beyond
the defined rectangle, some operations might
force/suggest expansion of the result
rect, like contrast stretching.
*/
gboolean cached; /* true if the cache can be used directly, and
recomputation of inputs is unnecessary) */
gint refs; /* set to number of nodes that depends on it
before evaluation begins, each time data is
fetched from the op the reference count is
dropped, when it drops to zero, the op is
asked to clean it's pads, FIXME: should be
incorporated into the refcount of
GeglOperationContext?
*/
gint level; /* subdivision level to render at, 0 = 1:1,
1 = 1:2,
2 = 1:4,
4 = 1:8,
6 = 1:16 .. */
GHashTable *contexts; /* to be able to look up the context of
other nodes/ops in the graph we store the
hashtable we will be stored in */
} GeglOperationContext;