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