/* This file is part of GEGL
*
* GEGL is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* GEGL is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with GEGL; if not, see .
*
* Copyright 2003 Calvin Williamson, Øyvind Kolås
* 2013 Daniel Sabo
*/
#ifndef __GEGL_INIT_H__
#define __GEGL_INIT_H__
G_BEGIN_DECLS
/***
* Initialization:
*
* Before GEGL can be used the engine should be initialized by either calling
* #gegl_init or through the use of #gegl_get_option_group. To shut down the
* GEGL engine call #gegl_exit.
*
* ---Code sample:
* #include
*
* int main(int argc, char **argv)
* {
* gegl_init (&argc, &argv);
* # other GEGL code
* gegl_exit ();
* }
*/
/**
* gegl_init:
* @argc: (inout) (optional): a pointer to the number of command line arguments.
* @argv: (inout) (array length=argc) (allow-none): a pointer to the array of command line arguments.
*
* Call this function before using any other GEGL functions. It will
* initialize everything needed to operate GEGL and parses some
* standard command line options. @argc and @argv are adjusted
* accordingly so your own code will never see those standard
* arguments.
*
* Note that there is an alternative way to initialize GEGL: if you
* are calling g_option_context_parse() with the option group returned
* by #gegl_get_option_group(), you don't have to call #gegl_init().
**/
void gegl_init (gint *argc,
gchar ***argv);
/**
* gegl_get_option_group: (skip)
*
* Returns a GOptionGroup for the commandline arguments recognized
* by GEGL. You should add this group to your GOptionContext
* with g_option_context_add_group() if you are using
* g_option_context_parse() to parse your commandline arguments.
*/
GOptionGroup *gegl_get_option_group (void);
/**
* gegl_exit:
*
* Call this function when you're done using GEGL. It will clean up
* caches and write/dump debug information if the correct debug flags
* are set.
*/
void gegl_exit (void);
/**
* gegl_load_module_directory:
* @path: the directory to load modules from
*
* Load all gegl modules found in the given directory.
*/
void gegl_load_module_directory (const gchar *path);
/**
* gegl_config:
*
* Returns a GeglConfig object with properties that can be manipulated to control
* GEGLs behavior.
*
* Return value: (transfer none): a #GeglConfig
*/
GeglConfig *gegl_config (void);
/**
* gegl_stats:
*
* Returns a GeglStats object with properties that can be read to monitor
* GEGL statistics.
*
* Return value: (transfer none): a #GeglStats
*/
GeglStats *gegl_stats (void);
/**
* gegl_reset_stats:
*
* Resets the cumulative data gathered by the #GeglStats object returned
* by #gegl_stats().
*/
void gegl_reset_stats (void);
gboolean gegl_is_main_thread (void);
G_END_DECLS
#endif /* __GEGL_INIT_H__ */