GEGL is modelled after a
directed acyclic graph, where each
node represents an image
operation (called "operators" or "ops"), and each
edge represents an
image. Operations can in general take several input images and give several output images, which corresponds to having several incoming edges (images) and several outgoing edges (images) at a given node (operation). The system uses an on-demand model, doing work only as required. This allows features such as having very quick previews while editing, and once the user has finished making changes, GEGL will repeat the same operations in full resolution for the final image in the background.
Operations An operation (op) is a node within a GEGL graph responsible for one action; ops can be: • simple, such as "add" (taking two inputs) or "premultiply by alpha" (taking one input) • complex, such as colorspace conversions GEGL also has a notion of meta operations, where one operation can be constructed from other operations (e.g.
unsharp mask is a combination of
add,
multiply,
subtract and
gaussian blur ops).
babl babl, a support library for GEGL, provides a generic way to deal with
color-space conversions; babl operates abstracting the fundamental color operations so that GEGL need not be aware of them. Through babl, GEGL provides an optimized and powerful (optionally with
SIMD support) treatment of arbitrary color data; this enables dependent applications to efficiently support a wide range of color spaces (from 8-bit
RGB to full
floating point CMYK) with minimal extra application code. ==OpenRaster==