Refer to the glossary for defintions of terminology used in this documentation.
At the moment compiling against gggl isn't documented, but if you know your way around a compiler and have gotten your hands dirty before it shouldn't be hard.
gggl works by allowing you to create a graph of processing instructions, creating modifying and comsuming image buffers, each op has properties: the following is a simple contrast adjustment program.
#include 'gggl.h' void define_graph(Gggl *gggl) { /* create ops */ int load = gggl_op_create (gggl); int adjust = gggl_op_create (gggl); int save = gggg_op_create (gggl); /* instantiate the ops */ gggl_op_set_type (gggl, load, 'png_load'); gggl_op_set_type (gggl, adjust, 'bcontrast'); gggl_op_set_type (gggl, save, 'png_save'); /* connect the nodes like this diagram .------. | load | `------' | v .--------. | adjust | `--------' | v .------. | save | `------' */ gggl_op_set_input (gggl, adjust, 0, load, 0); gggl_op_set_input (gggl, save, 0, adjust, 0); gggl_property_set (gggl, load, 'file', 'input.png'); gggl_property_set (gggl, adjust, 'contrast', '1.5'); gggl_property_set (gggl, save, 'file', 'output.png'); /* set the save operation as 'active' this means that this operation, and all it's dependencies will be calculated when the graph is processed */ gggl_set_active (gggl, save); } int main (int argc, char **argv) { Gggl *gggl; /* by passing an empty path to the plug-in loader it will load the default paths as set in GGGL_PLUGIN_PATH which is a colon seperated list of paths to recursivly look for .so files in */ gggl_operation_db_load_plugins(NULL); /* create a new gggl instance */ gggl = gggl_create(); define_graph (gggl); /* process graph */ gggl_process (gggl); /* free gggl instance, and nodes */ gggl_destroy (gggl); return 0; }