Blame docs/index-static.txt.in

Packit Service 2781ba
GEGL-@GEGL_VERSION@
Packit Service 2781ba
===========
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
[[gegl]]
Packit Service 2781ba
GEGL
Packit Service 2781ba
----
Packit Service 2781ba
Packit Service 2781ba
image::images/GEGL.png[GEGL]
Packit Service 2781ba
Packit Service 2781ba
*GEGL* (Generic Graphics Library) is a graph based image processing framework.
Packit Service 2781ba
Packit Service 2781ba
GEGL provides infrastructure to do demand based cached non destructive image
Packit Service 2781ba
editing on larger than RAM buffers. Through link:http://gegl.org/babl/[babl]
Packit Service 2781ba
it provides support for a wide range of color models and pixel storage formats
Packit Service 2781ba
for input and output.
Packit Service 2781ba
Packit Service 2781ba
[[features]]
Packit Service 2781ba
Features
Packit Service 2781ba
~~~~~~~~
Packit Service 2781ba
  - Floating point handling and processing and output of larger 8bit, 16bit
Packit Service 2781ba
    integer and 32bit floating point per component buffers larger than RAM.
Packit Service 2781ba
  - C, http://gegl.org/gegl-vala[vala], http://gegl.org/gegl-sharp/[C#],
Packit Service 2781ba
    http://gegl.org/pygegl/[Python] and http://gegl.org/rgegl/[Ruby] interfaces
Packit Service 2781ba
    using a consistent DOM like graph API to manage processing graphs.
Packit Service 2781ba
  - Processing
Packit Service 2781ba
     * Iterative chunk-wise processing.
Packit Service 2781ba
     * Processes subregions and dependencies.
Packit Service 2781ba
     * Subgraph caches to aid performance of non-destructive editing.
Packit Service 2781ba
     * Experimental OpenCL acceleration, with possibility of hybrid cpu/gpu
Packit Service 2781ba
       processing. 
Packit Service 2781ba
  - link:api.html#GeglBuffer[GeglBuffer]
Packit Service 2781ba
     * Storage of all babl supported formats.
Packit Service 2781ba
     * Tiled sparse buffers (larger than RAM images).
Packit Service 2781ba
     * linear buffers (allocated internally or from external allocation.)
Packit Service 2781ba
     * On demand tiled mipmapping.
Packit Service 2781ba
     * inter process shared storage
Packit Service 2781ba
     * External tile-backends (allow wrapping other tiled buffer systems
Packit Service 2781ba
       to use them through the GeglBuffer API).
Packit Service 2781ba
  - Operations
Packit Service 2781ba
      * PNG, JPEG, SVG, EXR, RAW, ffmpeg, v4l and other image sources.
Packit Service 2781ba
      * link:operations.html#cat_render[Pattern renderers]
Packit Service 2781ba
      * link:operations.html#math[Arithmetic operations]
Packit Service 2781ba
      * link_operations.html#porter_duff[porter duff compositing]
Packit Service 2781ba
      * SVG filter modes and full set of compositing ops from SVG-1.2 draft.
Packit Service 2781ba
      * Gaussian blur, bilateral-filter, symmetric nearest neighbour, linear
Packit Service 2781ba
      * blur, unsharp mask, pixelize and more.
Packit Service 2781ba
      * link:operations.html#cat_color[Color correction].
Packit Service 2781ba
      * Text rendering using cairo and http://pango.org/[pango].
Packit Service 2781ba
      * HDR exposure merging and tone mapping operations.
Packit Service 2781ba
      * Most operations operate in
Packit Service 2781ba
        http://en.wikipedia.org/wiki/ScRGB_color_space[scRGB] (using 32bit
Packit Service 2781ba
        floating point/HDR linear light RGBA)
Packit Service 2781ba
  - Bounding box based hit detection.
Packit Service 2781ba
  - XML serialization format (not-finalized)
Packit Service 2781ba
Packit Service 2781ba
News
Packit Service 2781ba
~~~~
Packit Service 2781ba
This website is built at the time of the previous GEGL tarball release,
Packit Service 2781ba
for information about what might change on the way to the next release
Packit Service 2781ba
follow the following news sources:
Packit Service 2781ba
Packit Service 2781ba
http://git.gnome.org/cgit/gegl/log/[Change log]::
Packit Service 2781ba
  For day to day fixes, contributions and changes.
Packit Service 2781ba
http://git.gnome.org/cgit/gegl/tree/NEWS[NEWS]::
Packit Service 2781ba
  The NEWS file for a list of major new features (also contains older NEWS).
Packit Service 2781ba
http://bugzilla.gnome.org/buglist.cgi?product=GEGL&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=UNCONFIRMED&bug_status=NEEDINFO[bugzilla]::
Packit Service 2781ba
 for known and tracked issues with GEGL and perhaps see the 
Packit Service 2781ba
http://blog.gmane.org/gmane.comp.video.gegl.devel?set_blog_all=yes[mail]::
Packit Service 2781ba
  The mailinglist archives for some discussion and announcement.
Packit Service 2781ba
Packit Service 2781ba
Gallery
Packit Service 2781ba
~~~~~~~
Packit Service 2781ba
For examples of what GEGL's rendering engine currently can do look at the
Packit Service 2781ba
link:gallery/index.html[gallery].
Packit Service 2781ba
Packit Service 2781ba
Bugzilla
Packit Service 2781ba
~~~~~~~~
Packit Service 2781ba
The GEGL project uses http://bugzilla.gnome.org/[GNOME Bugzilla], a
Packit Service 2781ba
bug-tracking system that allows us to coordinate bug reports. Bugzilla is also
Packit Service 2781ba
used for enhancement requests and the preferred way to submit patches for GEGL
Packit Service 2781ba
is to open a bug report and attach the patch to it. Bugzilla is also the
Packit Service 2781ba
closest you will find to a roadmap for GEGL.
Packit Service 2781ba
Packit Service 2781ba
Below is a list of links to get you started with Bugzilla:
Packit Service 2781ba
Packit Service 2781ba
  - http://bugzilla.gnome.org/buglist.cgi?product=GEGL&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED[List of Open Bugs]
Packit Service 2781ba
  - http://bugzilla.gnome.org/buglist.cgi?product=GEGL&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_severity=blocker&bug_severity=critical&bug_severity=major&bug_severity=normal&bug_severity=minor&bug_severity=trivial[List of Open Bugs] (excluding enhancement requests)
Packit Service 2781ba
  - http://bugzilla.gnome.org/buglist.cgi?product=GEGL&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=UNCONFIRMED&bug_status=NEEDINFO&bug_severity=enhancement[List of Enhancement Proposals]
Packit Service 2781ba
  - http://bugzilla.gnome.org/reports/weekly-bug-summary.cgi[Bugzilla Weekly Summary]
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Community
Packit Service 2781ba
~~~~~~~~~
Packit Service 2781ba
Packit Service 2781ba
You can subscribe to gegl-developer and view the archives
Packit Service 2781ba
http://mail.gnome.org/mailman/listinfo/gegl-developer-list[here]. The GEGL
Packit Service 2781ba
developer list is the appopriate place to ask development questions, and get
Packit Service 2781ba
more information about GEGL development in general. You can email this list at
Packit Service 2781ba
mailto:gegl-developer-list@gnome.org[].
Packit Service 2781ba
Packit Service 2781ba
GEGL development is also discussed in #gegl on GIMPnet (irc.gimp.org).
Packit Service 2781ba
Packit Service 2781ba
Copyright
Packit Service 2781ba
~~~~~~~~~
Packit Service 2781ba
GEGL is free software; you can redistribute it and/or modify it under the terms
Packit Service 2781ba
of the link:LGPL[GNU Lesser General Public License] and link:GPL[GNU General
Packit Service 2781ba
Public License] as published by the Free Software Foundation; either version 3
Packit Service 2781ba
of the Licenses, or (at your option) any later version. The library itself is
Packit Service 2781ba
licensed under LGPL while the sample commandline application and GUI binary
Packit Service 2781ba
gegl is licensed under GPL.
Packit Service 2781ba
Packit Service 2781ba
Contributors
Packit Service 2781ba
~~~~~~~~~~~~
Packit Service 2781ba
Many people have contributed to GEGL
Packit Service 2781ba
http://www.ohloh.net/projects/4349/analyses/latest[over time] the following
Packit Service 2781ba
lists are are ordered chronologically according to when they are mentioned in
Packit Service 2781ba
the ChangeLog.
Packit Service 2781ba
Packit Service 2781ba
include::@top_srcdir@/AUTHORS[]
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Building from source
Packit Service 2781ba
--------------------
Packit Service 2781ba
GEGL and it's dependencies are known to work on Linux based systems, windows
Packit Service 2781ba
with msys/mingw, and probably other platforms.
Packit Service 2781ba
Packit Service 2781ba
Download
Packit Service 2781ba
~~~~~~~~
Packit Service 2781ba
The latest development snapshot, and eventually stable versions of GEGL are
Packit Service 2781ba
available at ftp://ftp.gimp.org/pub/gegl/[].
Packit Service 2781ba
Packit Service 2781ba
The current code under development can be
Packit Service 2781ba
http://git.gnome.org/cgit/gegl/tree[browsed online] and cloned from
Packit Service 2781ba
GNOME git using:
Packit Service 2781ba
Packit Service 2781ba
 $ git clone git://git.gnome.org/babl
Packit Service 2781ba
 $ git clone git://git.gnome.org/gegl
Packit Service 2781ba
Packit Service 2781ba
Dependencies
Packit Service 2781ba
~~~~~~~~~~~~
Packit Service 2781ba
Packit Service 2781ba
GEGL currently builds and works on linux, win32 and OSX most probably also on
Packit Service 2781ba
other systems where glib and gtk+ work.
Packit Service 2781ba
Packit Service 2781ba
  - Core
Packit Service 2781ba
      * glib (including gobject, and gmodule) 2.16 or newer, which provides
Packit Service 2781ba
        inheritance, dynamic modules, common algorithms and data structures
Packit Service 2781ba
        for C programming.
Packit Service 2781ba
      * http://gegl.org/babl/[babl] 0.0.22 or newer (for pixel-format
Packit Service 2781ba
        agnostisism).
Packit Service 2781ba
      * libpng (png load/export ops, and image magick fallback import)
Packit Service 2781ba
      * ruby (only if building from git)
Packit Service 2781ba
  - GUI (sandbox for testing ops and the API)
Packit Service 2781ba
      * GTK+
Packit Service 2781ba
  - Optional dependencies for operations.
Packit Service 2781ba
      * SDL (display op)
Packit Service 2781ba
      * libjpeg (jpg loader op)
Packit Service 2781ba
      * libopenexr (exr loader op)
Packit Service 2781ba
      * http://freedesktop.org/wiki/Software/libopenraw[libopenraw] (raw
Packit Service 2781ba
        loader op)
Packit Service 2781ba
      * cairo, pango (text source op)
Packit Service 2781ba
      * avcodec, avformat (ff-load and experimental ff-save)
Packit Service 2781ba
      * librsvg (svg loader)
Packit Service 2781ba
   - Documentation (this document)
Packit Service 2781ba
      * asciidoc
Packit Service 2781ba
Packit Service 2781ba
Compiling
Packit Service 2781ba
~~~~~~~~~
Packit Service 2781ba
To build GEGL type the following in the toplevel source directory:
Packit Service 2781ba
Packit Service 2781ba
 $ ./configure  # or: ./autogen.sh if building from git
Packit Service 2781ba
 $ make
Packit Service 2781ba
 $ sudo make install
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Documentation
Packit Service 2781ba
-------------
Packit Service 2781ba
With GEGL you chain together image processing operations represented by nodes
Packit Service 2781ba
into a graph. GEGL provides such operations for loading and storing images,
Packit Service 2781ba
adjusting colors, filtering in different ways, transforming and compositing images.
Packit Service 2781ba
Packit Service 2781ba
GEGL's programmer/user interface is a Directed Acyclic Graph of nodes. The DAG
Packit Service 2781ba
expresses a processing chain of operations. A DAG, or any node in it, expresses
Packit Service 2781ba
a composited and processed image. It is possible to request rectangular regions
Packit Service 2781ba
in a wide range of pixel formats from any node.
Packit Service 2781ba
Packit Service 2781ba
Development
Packit Service 2781ba
-----------
Packit Service 2781ba
This link:development.html[howto] describes good-to-know things for developing gegl
Packit Service 2781ba
Packit Service 2781ba
Public API
Packit Service 2781ba
~~~~~~~~~~
Packit Service 2781ba
The link:api.html[public API reference] documents the API used for creating
Packit Service 2781ba
things with GEGL, this API does not change much at all and is also the API
Packit Service 2781ba
provided by language bindings. To make the public API available when compiling
Packit Service 2781ba
a .c file add #include <link:gegl.h.html[gegl.h]>, compile and link with the
Packit Service 2781ba
flags provided by pkg-config and you should be all set. When you are
Packit Service 2781ba
comfortable with the public API, or are using GEGL in some project looking at
Packit Service 2781ba
the link:operations.html[Operation reference] might be useful.
Packit Service 2781ba
Packit Service 2781ba
The public API also includes link:api.html#GeglBuffer[GeglBuffer], a flexible
Packit Service 2781ba
tiled and linear raster buffer storage system.
Packit Service 2781ba
Packit Service 2781ba
Bindings
Packit Service 2781ba
^^^^^^^^
Packit Service 2781ba
The bindings for use of GEGL in other programming languages than C are
Packit Service 2781ba
co-hosted with GEGL in GNOME git but are not part of the regular GEGL
Packit Service 2781ba
distribution. The following language bindings are currently available:
Packit Service 2781ba
Packit Service 2781ba
http://gegl.org/gegl-vala[vala], http://gegl.org/gegl-sharp/[C#],
Packit Service 2781ba
http://gegl.org/pygegl/[Python] and http://gegl.org/rgegl/[Ruby].
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Hello world
Packit Service 2781ba
^^^^^^^^^^^
Packit Service 2781ba
The following is a small sample GEGL application that animates a zoom on a
Packit Service 2781ba
mandelbrot fractal. compile it with:
Packit Service 2781ba
Packit Service 2781ba
 $ gcc hello-world.c `pkg-config --libs --cflags gegl` -o hello-world
Packit Service 2781ba
Packit Service 2781ba
This example and others can be found in the examples subdir of the GEGL distribution.
Packit Service 2781ba
Packit Service 2781ba
---------------------------
Packit Service 2781ba
sys::[cat @top_srcdir@/examples/hello-world.c]
Packit Service 2781ba
---------------------------
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Operation API
Packit Service 2781ba
~~~~~~~~~~~~~
Packit Service 2781ba
An API to extend the functionality of GEGL with new image processing primitive,
Packit Service 2781ba
file loaders, export formats or similar. 
Packit Service 2781ba
Packit Service 2781ba
Each GEGL operation is defined in a .c file that gets turned into a single
Packit Service 2781ba
shared object that is loaded. Each operation is a subclass of one of the
Packit Service 2781ba
provided base classes:
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation.h.html[GeglOperation]::
Packit Service 2781ba
    The base operation class, which all the other base classes are derived
Packit Service 2781ba
    from, deriving from this is often quite a bit of work and is encouraged
Packit Service 2781ba
    only when your operation doesn't fit into any of the other categories
Packit Service 2781ba
link:gegl-operation-filter.h.html[GeglOperationFilter]::
Packit Service 2781ba
    The filter base class sets up GeglBuffers for input and output pads
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation-point-filter.h.html[GeglOperationPointFilter]::
Packit Service 2781ba
    The point-filter base class is for filters where an output pixel only
Packit Service 2781ba
    depends on the color and alpha values of the corresponding input pixel.
Packit Service 2781ba
    This allows you to do the processing on linear buffers, in the future
Packit Service 2781ba
    versions of GEGL operations implemented using the point-filter will get
Packit Service 2781ba
    speed increases due to more intelligent processing possible in the point
Packit Service 2781ba
    filter class
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation-area-filter.h.html[GeglOperationAreaFilter]::
Packit Service 2781ba
    The AreaFilter base class allows defining operations where the output data
Packit Service 2781ba
    depends on a neighbourhood with an input window that extends beyond the
Packit Service 2781ba
    output window, the information about needed extra pixels in different
Packit Service 2781ba
    directions should be set up in the prepare callback for the operation.
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation-composer.h.html[GeglOperationComposer]::
Packit Service 2781ba
    Composer operations are operations that take two inputs named 'input' and
Packit Service 2781ba
    'aux' and write their output to the output pad 'output'
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation-point-composer.h.html[GeglOperationPointComposer]::
Packit Service 2781ba
    A baseclass for composer functions where the output pixels' values depends
Packit Service 2781ba
    only on the values of the single corresponding input and aux pixels.
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation-source.h.html[GeglOperationSource]::
Packit Service 2781ba
    Operations used as render sources or file loaders, the process method
Packit Service 2781ba
    receives a GeglBuffer to write it's output into
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation-point-render.h.html[GeglOperationPointRender]::
Packit Service 2781ba
    The point-render base class is a specialized source operation, where the
Packit Service 2781ba
    render is done in small piece to lower the need to do copies. It's dedicated
Packit Service 2781ba
    to operation which may be rendered in pieces, like pattern generation.
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation-sink.h.html[GeglOperationSink]::
Packit Service 2781ba
    An operation that consumes a GeglBuffer, used for filewriters, display (for
Packit Service 2781ba
    the sdl display node)
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation-temporal.h.html[GeglOperationTemporal]::
Packit Service 2781ba
    Base class for operations that want access to previous frames in a video
Packit Service 2781ba
    sequence, it contains API to configure the amounts of frames to store as
Packit Service 2781ba
    well as getting a GeglBuffer pointing to any of the previously stored
Packit Service 2781ba
    frames.
Packit Service 2781ba
Packit Service 2781ba
link:gegl-operation-meta.h.html[GeglOperationMeta]::
Packit Service 2781ba
    Used for GEGL operations that are implemented as a sub-graph, at the moment
Packit Service 2781ba
    these are defined as C files but should in the future be possible to
Packit Service 2781ba
    declare as XML instead.
Packit Service 2781ba
Packit Service 2781ba
To create your own operations you should start by looking for one that does
Packit Service 2781ba
approximatly what you already need. Copy it to a new .c source file, and
Packit Service 2781ba
replace the occurences of the filename (operation name in the source.)
Packit Service 2781ba
Packit Service 2781ba
Take a look at link:brightness-contrast.c.html[the brightness contrast
Packit Service 2781ba
operation] for a point operation well sprinkled with comments as a starting point.
Packit Service 2781ba
Packit Service 2781ba
//XML data model
Packit Service 2781ba
//~~~~~~~~~~~~~~
Packit Service 2781ba
//The tree allows clones, making it possible to express any acyclic graph where
Packit Service 2781ba
//the nodes are all of the types: source, filter and composer.
Packit Service 2781ba
//
Packit Service 2781ba
//GEGL can write and reads its data model to and from XML. The XML is chains of
Packit Service 2781ba
//image processing commands, where some chains allow a child chain (the 'over'
Packit Service 2781ba
//operator to implement layers for instance).
Packit Service 2781ba
//
Packit Service 2781ba
//The type of operation associated with a node can be specified either with a
Packit Service 2781ba
//class attribute or by using the operation name as the tag name for the node.
Packit Service 2781ba
//
Packit Service 2781ba
//or documentation on how this XML works, take a look at the sources in the
Packit Service 2781ba
//gallery. And browse the documentation for operations.
Packit Service 2781ba
Packit Service 2781ba
Environment
Packit Service 2781ba
~~~~~~~~~~~
Packit Service 2781ba
Some environment variables can be set to alter how GEGL runs, all of these
Packit Service 2781ba
options are also available as properties on a singleton GObject returned from
Packit Service 2781ba
gegl_config ().
Packit Service 2781ba
Packit Service 2781ba
GEGL_QUALITY::
Packit Service 2781ba
    A value between 0.0 and 1.0 indicating a trade-off between quality and
Packit Service 2781ba
    speed. Defaults to 1.0 (max quality).
Packit Service 2781ba
BABL_TOLERANCE::
Packit Service 2781ba
    The amount of error that babl tolerates, set it to for instance 0.1 to use
Packit Service 2781ba
    some conversions that trade some quality for speed.
Packit Service 2781ba
GEGL_CHUNK_SIZE::
Packit Service 2781ba
    The number of pixels processed simulatnously.
Packit Service 2781ba
GEGL_TILE_SIZE::
Packit Service 2781ba
    The tile size used internally by GEGL, defaults to 128x64
Packit Service 2781ba
GEGL_SWAP::
Packit Service 2781ba
    The directory where temporary swap files are written, if not specified GEGL
Packit Service 2781ba
    will not swap to disk. Be aware that swapping to disk is still experimental
Packit Service 2781ba
    and GEGL is currently not removing the per process swap files.
Packit Service 2781ba
GEGL_CACHE_SIZE::
Packit Service 2781ba
    The size of the tile cache used by GeglBuffer specified in megabytes.
Packit Service 2781ba
GEGL_DEBUG::
Packit Service 2781ba
    set it to "all" to enable all debugging, more specific domains for
Packit Service 2781ba
    debugging information are also available.
Packit Service 2781ba
BABL_STATS::
Packit Service 2781ba
    When set babl will write a html file (/tmp/babl-stats.html) containing a
Packit Service 2781ba
    matrix of used conversions, as well as all existing conversions and which
Packit Service 2781ba
    optimized paths are followed.
Packit Service 2781ba
GEGL_DEBUG_BUFS::
Packit Service 2781ba
    Display tile/buffer leakage statistics.
Packit Service 2781ba
GEGL_DEBUG_RECTS::
Packit Service 2781ba
    Show the results of have/need rect negotiations.
Packit Service 2781ba
GEGL_DEBUG_TIME::
Packit Service 2781ba
    Print a performance instrumentation breakdown of GEGL and it's operations.
Packit Service 2781ba
GEGL_USE_OPENCL:
Packit Service 2781ba
    Enable use of OpenCL processing.
Packit Service 2781ba
Packit Service 2781ba
gegl
Packit Service 2781ba
~~~~
Packit Service 2781ba
GEGL provides a commandline tool called gegl, for working with the XML data
Packit Service 2781ba
model from file, stdin or the commandline. It can display the result of
Packit Service 2781ba
processing the layer tree or save it to file.
Packit Service 2781ba
Packit Service 2781ba
Some examples:
Packit Service 2781ba
Packit Service 2781ba
Render a composition to a PNG file:
Packit Service 2781ba
Packit Service 2781ba
 $ gegl composition.xml -o composition.png
Packit Service 2781ba
Packit Service 2781ba
Invoke gegl like a viewer for gegl compositions:
Packit Service 2781ba
Packit Service 2781ba
 $ gegl -ui -d 5 composition.xml
Packit Service 2781ba
Packit Service 2781ba
Using gegl with png's passing through stdin/stdout piping.
Packit Service 2781ba
Packit Service 2781ba
 $ cat input.png | gegl -o - -x "<gegl>
Packit Service 2781ba
    <tree>
Packit Service 2781ba
      <node class='invert'/>
Packit Service 2781ba
      <node class='scale' x='0.5' y='0.5'/>
Packit Service 2781ba
      <node class='png-load' path='-'/></tree></gegl>" > output.png
Packit Service 2781ba
Packit Service 2781ba
The latest development version is available in the gegl repository in GNOME
Packit Service 2781ba
git.
Packit Service 2781ba
Packit Service 2781ba
gegl usage
Packit Service 2781ba
^^^^^^^^^^
Packit Service 2781ba
The following is the usage information of the gegl binary, this documentation
Packit Service 2781ba
might not be complete.
Packit Service 2781ba
Packit Service 2781ba
-------
Packit Service 2781ba
sys::[bash -c '../bin/gegl -h 2>&1']
Packit Service 2781ba
-------
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Appendixes
Packit Service 2781ba
----------
Packit Service 2781ba
Packit Service 2781ba
Operations
Packit Service 2781ba
~~~~~~~~~~
Packit Service 2781ba
Packit Service 2781ba
The main source of documentation as GEGL grows is the
Packit Service 2781ba
link:operations.html[operations reference]. Plug-ins themselves register
Packit Service 2781ba
information about the categories they belong to, what they do, and
Packit Service 2781ba
documentation of the available parameters.
Packit Service 2781ba
Packit Service 2781ba
Glossary
Packit Service 2781ba
~~~~~~~~
Packit Service 2781ba
connection::
Packit Service 2781ba
    A link/pipe routing image flow between operations within the graph goes
Packit Service 2781ba
    from an output pad to an input pad, in graph glossary this might also be
Packit Service 2781ba
    referred to as an edge.
Packit Service 2781ba
DAG::
Packit Service 2781ba
    Directed Acyclic Graph, see graph.
Packit Service 2781ba
graph::
Packit Service 2781ba
    A composition of nodes, the graph is a DAG.
Packit Service 2781ba
node::
Packit Service 2781ba
    The nodes are connected in the graph. A node has an associated operation or
Packit Service 2781ba
    can be constructed graph.
Packit Service 2781ba
operation::
Packit Service 2781ba
    The processing primitive of GEGL, is where the actual image processing
Packit Service 2781ba
    takes place. Operations are plug-ins and provide the actual functionality
Packit Service 2781ba
    of GEGL
Packit Service 2781ba
pad::
Packit Service 2781ba
    The part of a node that exchanges image content. The place where image
Packit Service 2781ba
    "pipes" are used to connect the various operations in the composition.
Packit Service 2781ba
input pad::
Packit Service 2781ba
  consumes image data, might also be seen as an image parameter to the
Packit Service 2781ba
  operation.
Packit Service 2781ba
output pad::
Packit Service 2781ba
  a place where data can be requested, multiple input pads can reference
Packit Service 2781ba
  the same output pad.
Packit Service 2781ba
property::
Packit Service 2781ba
    Properties are what controls the behavior of operations. Through the use of
Packit Service 2781ba
    GParamSpecs properties they are self documenting via introspection.
Packit Service 2781ba
Packit Service 2781ba
Directory overview
Packit Service 2781ba
~~~~~~~~~~~~~~~~~~
Packit Service 2781ba
GEGL dirs
Packit Service 2781ba
^^^^^^^^^
Packit Service 2781ba
Packit Service 2781ba
Directories marked with ⊙ use GNU make extensions to include any .c file
Packit Service 2781ba
dropped into the directory in the build.
Packit Service 2781ba
Packit Service 2781ba
 gegl-dist-root
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
  ├──gegl               core source of GEGL, library init/deinit,
Packit Service 2781ba
  │   │
Packit Service 2781ba
  │   ├──buffer         contains the implementation of GeglBuffer
Packit Service 2781ba
  │   │                  - sparse (tiled)
Packit Service 2781ba
  │   │                  - recursivly subbuffer extendable
Packit Service 2781ba
  │   │                  - clipping rectangle (defaults to bounds when making
Packit Service 2781ba
  │   │                    subbuffers)
Packit Service 2781ba
  │   │                  - storage in any babl supported pixel format
Packit Service 2781ba
  │   │                  - read/write rectangular region as linear buffer for
Packit Service 2781ba
  │   │                    any babl supported pixel format.
Packit Service 2781ba
  │   ├──graph          graph storage and manipulation code.
Packit Service 2781ba
  │   ├──module         The code to load plug-ins located in a colon seperated
Packit Service 2781ba
  │   │                 list of paths from the environment variable GEGL_PATH
Packit Service 2781ba
  │   ├──operation      The GeglOperation base class, and subclasses that act
Packit Service 2781ba
  │   │                 as baseclasses for implementeting different types of
Packit Service 2781ba
  │   │                 operation plug-ins.
Packit Service 2781ba
  │   ├──process        The code controlling data processing.
Packit Service 2781ba
  │   └──property-types specialized classes/paramspecs for GeglOperation
Packit Service 2781ba
  │                     properties.
Packit Service 2781ba
Packit Service 2781ba
  ├──examples ⊙        hello-world and other example uses of the GEGL API.
Packit Service 2781ba
Packit Service 2781ba
  ├──tests             various tests used to maintain stability when developing
Packit Service 2781ba
  │                    GEGL.
Packit Service 2781ba
Packit Service 2781ba
  ├──operations        Runtime loaded plug-ins for image processing operations.
Packit Service 2781ba
  │   │
Packit Service 2781ba
  │   ├──core ⊙        Basic operations tightly coupled with GEGL.
Packit Service 2781ba
  │   ├──affine        Transforming operations (rotate/scale/translate)
Packit Service 2781ba
  │   ├──generated ⊙   Operations generated from scripts (currently
Packit Service 2781ba
  │   ├──external      Operations with external dependencies.
Packit Service 2781ba
  │   ├──common ⊙      Other operations. 
Packit Service 2781ba
  │   └──workshop ⊙    Works in progress, (you must pass --enable-workshop 
Packit Service 2781ba
  │       │            when configurig to build these by default, you can enter
Packit Service 2781ba
  │       │            the directory manually and type make && sudo make install
Packit Service 2781ba
  │       │            as well.
Packit Service 2781ba
  │       │
Packit Service 2781ba
  │       ├──external  operations in the workshop with external dependencies.
Packit Service 2781ba
  │       └──generated generated operations that are in the workshop.
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
  ├──docs              The GEGL website (this documentation), built for your
Packit Service 2781ba
  │   │                the corresponding sourcetree with correct documentation
Packit Service 2781ba
  │   │                etc.
Packit Service 2781ba
  │   │
Packit Service 2781ba
  │   └──gallery ⊙     A gallery of sample GEGL compositions, using the
Packit Service 2781ba
  │       │            (not yet stabilized) XML format.
Packit Service 2781ba
  │       │
Packit Service 2781ba
  │       └──data      Image data used by the sample compositions.
Packit Service 2781ba
Packit Service 2781ba
  ├──bin               gegl binary, for processing XML compositions to png files.
Packit Service 2781ba
Packit Service 2781ba
  ├──bindings          bindings for using GEGL from other programming languages
Packit Service 2781ba
  │                    not included in the tarball distribution but exist in
Packit Service 2781ba
  │                    the git repository.
Packit Service 2781ba
Packit Service 2781ba
  └──tools             some small utilities to help the build.
Packit Service 2781ba
Packit Service 2781ba
++++++++
Packit Service 2781ba
Packit Service 2781ba
Table of Contents
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
-->
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
 
Packit Service 2781ba
 
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
Packit Service 2781ba
++++++++