Update doxygen

This commit is contained in:
Mario Hüttel 2019-08-24 13:45:36 +02:00
parent 17af08b04d
commit a2bcda6752
9 changed files with 70 additions and 18 deletions

View File

@ -1,4 +1,4 @@
/** /**
* @defgroup Cairo-Renderer Cairo Renderer * @defgroup Cairo-Renderer Cairo Renderer
* @ingroup renderers * @ingroup GdsOutputRenderer
*/ */

View File

@ -1,4 +1,15 @@
/** /**
* @defgroup external-renderer External Shared Object Renderer * @defgroup ExternalRenderer External Shared Object Renderer
* @ingroup renderers * @ingroup GdsOutputRenderer
*
* @subsection ExternalRendererProps Properties
* This class inherits all properties from its parent @ref GdsOutputRenderer.
* In addition to that, it implements the following properties:
*
* Property Name | Description
* -----------------|----------------------------------------------------------------
* shared-object-path | Path to the shared object used for rendering
*
* All these properties have to be set for rendering.
*
*/ */

View File

@ -0,0 +1,34 @@
/**
* @defgroup GdsOutputRenderer GDS Output Renderer base class
*
* The renderers are used to convert the cell structures read from the GDS layout file
* into different output formats.
*
* The GdsOutputRenderer base class is used to derive all renderers from.
*
* @warning Although the GdsOutputRenderer class provides compatibility for asynchronous rendering,
* the class is not thread safe / re-entrant. Only use it from a signle context. Not even the rendering function called is allowed to modifiy this object.
*
* A allowed function to be called from the async rendering thread is #gds_output_renderer_update_gui_status_from_async and the get functions for the properties.
*
* @note The context that owned the renderer has to ensure that only one rendering is active at a time for a single instance of a renderer.
*
* By default this class implements the following features:
*
* @subsection GdsOutputRendererProps Properties
* Property Name | Description
* -----------------|----------------------------------------------------------------
* layer-settings | LayerSettings object containing the layer rendering information
* output-file | Output file name for rendering
*
* All these properties have to be set for rendering.
*
* @subsection GdsOutputRendererSignals Signals / Events
* Signal Name | Description | Callback prototype
* -----------------|-------------------------------------------------|-----------------------------------------------------------
* async-finished | The asynchronous rendering is finished | void callback(GdsOutputRenderer *src, gpointer user_data)
* progress-changed | The asynchronous rendering progress changed | void callback(GdsOutputRenderer *src, const char *progress, gpointer user_data)
*
* @note The `char *progress` supplied to the callback function must not be modified or freed.
*
*/

View File

@ -1,4 +1,16 @@
/** /**
* @defgroup LaTeX-Renderer LaTeX/TikZ Renderer * @defgroup LaTeX-Renderer LaTeX/TikZ Renderer
* @ingroup renderers * @ingroup GdsOutputRenderer
*
* This is the class implementing the Latex / tikz output rendering
* @subsection LaTeXRendererProps Properties
* This class inherits all properties from its parent @ref GdsOutputRenderer.
* In addition to that, it implements the following properties:
*
* Property Name | Description
* -----------------|----------------------------------------------------------------
* standalone | Configure output LaTeX document to be standalone compilable (requires standalone documentclass)
* pdf-layers | Create OCG layers in LaTeX output
*
*/ */

View File

@ -1,9 +0,0 @@
/**
* @defgroup renderers Output Renderers
*
* The renderers are used to convert the cell structures read from the GDS layout file
* into different output formats.
*
* Currently the renders are statically implemented without the use of GObjects.
* This will probably change in future releases in order to make it easier to integrate new rendering methods.
*/

View File

@ -58,7 +58,7 @@ enum graphics_type
enum path_type {PATH_FLUSH = 0, PATH_ROUNDED = 1, PATH_SQUARED = 2}; /**< Path line caps */ enum path_type {PATH_FLUSH = 0, PATH_ROUNDED = 1, PATH_SQUARED = 2}; /**< Path line caps */
/** /**
* @brief A point in the 2D plane. Sometimes references as vertex * @brief A point in the 2D plane. Sometimes reffered to as vertex
*/ */
struct gds_point { struct gds_point {
int x; int x;

View File

@ -50,6 +50,7 @@ G_DEFINE_TYPE(ExternalRenderer, external_renderer, GDS_RENDER_TYPE_OUTPUT_RENDER
* @param toplevel_cell Cell to render * @param toplevel_cell Cell to render
* @param layer_info_list Layer information (Color etc.) * @param layer_info_list Layer information (Color etc.)
* @param output_file Destination file * @param output_file Destination file
* @param scale the scaling value to scale the output cell down by.
* @param so_path Path to shared object * @param so_path Path to shared object
* @return 0 if successful * @return 0 if successful
*/ */

View File

@ -20,9 +20,6 @@
/** /**
* @file gds-output-renderer.c * @file gds-output-renderer.c
* @brief Base GObject class for output renderers * @brief Base GObject class for output renderers
*
* All output renderers are derived from this class
*
* @author Mario Hüttel <mario.huettel@gmx.net> * @author Mario Hüttel <mario.huettel@gmx.net>
*/ */

View File

@ -29,10 +29,15 @@
#include <gdk/gdk.h> #include <gdk/gdk.h>
#include <gds-render/layer/layer-info.h> #include <gds-render/layer/layer-info.h>
/** /**
* @addtogroup LatexRenderer * @addtogroup LaTeX-Renderer
* @{ * @{
*/ */
/**
* @brief Struct representing the LaTeX-Renderer object.
*
* This struct holds the LaTeX renderer internal data. It is only used inside the @ref LatexRenderer class.
*/
struct _LatexRenderer { struct _LatexRenderer {
GdsOutputRenderer parent; GdsOutputRenderer parent;
gboolean tex_standalone; gboolean tex_standalone;
@ -226,6 +231,7 @@ static void generate_graphics(FILE *tex_file, GList *graphics, GList *linfo, GSt
* @param tex_file File to write to * @param tex_file File to write to
* @param buffer Working buffer * @param buffer Working buffer
* @param scale Scale output down by this value * @param scale Scale output down by this value
* @param renderer The current renderer as GdsOutputRenderer. This is used to emit the status updates to the GUI
*/ */
static void render_cell(struct gds_cell *cell, GList *layer_infos, FILE *tex_file, GString *buffer, double scale, static void render_cell(struct gds_cell *cell, GList *layer_infos, FILE *tex_file, GString *buffer, double scale,
GdsOutputRenderer *renderer) GdsOutputRenderer *renderer)