Compare commits
No commits in common. "a2bcda6752c87fbfb043f7d4ea7efeb3659b027f" and "94ac44ddc57a8d02d00cec842cc58bcb6ceb22f6" have entirely different histories.
a2bcda6752
...
94ac44ddc5
@ -1,4 +1,4 @@
|
|||||||
/**
|
/**
|
||||||
* @defgroup Cairo-Renderer Cairo Renderer
|
* @defgroup Cairo-Renderer Cairo Renderer
|
||||||
* @ingroup GdsOutputRenderer
|
* @ingroup renderers
|
||||||
*/
|
*/
|
||||||
|
@ -1,15 +1,4 @@
|
|||||||
/**
|
/**
|
||||||
* @defgroup ExternalRenderer External Shared Object Renderer
|
* @defgroup external-renderer External Shared Object Renderer
|
||||||
* @ingroup GdsOutputRenderer
|
* @ingroup renderers
|
||||||
*
|
|
||||||
* @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.
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
/**
|
|
||||||
* @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.
|
|
||||||
*
|
|
||||||
*/
|
|
@ -1,16 +1,4 @@
|
|||||||
/**
|
/**
|
||||||
* @defgroup LaTeX-Renderer LaTeX/TikZ Renderer
|
* @defgroup LaTeX-Renderer LaTeX/TikZ Renderer
|
||||||
* @ingroup GdsOutputRenderer
|
* @ingroup renderers
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
9
doxygen/renderers.dox
Normal file
9
doxygen/renderers.dox
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* @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.
|
||||||
|
*/
|
@ -293,7 +293,7 @@ static void async_rendering_finished_callback(GdsOutputRenderer *renderer, gpoin
|
|||||||
g_object_unref(renderer);
|
g_object_unref(renderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void async_rendering_status_update_callback(GdsOutputRenderer *renderer, const char *status_message, gpointer data)
|
static void async_rendering_status_update_callback(GdsOutputRenderer *renderer, char *status_message, gpointer data)
|
||||||
{
|
{
|
||||||
GdsRenderGui *gui;
|
GdsRenderGui *gui;
|
||||||
(void)renderer;
|
(void)renderer;
|
||||||
@ -301,6 +301,7 @@ static void async_rendering_status_update_callback(GdsOutputRenderer *renderer,
|
|||||||
gui = RENDERER_GUI(data);
|
gui = RENDERER_GUI(data);
|
||||||
|
|
||||||
activity_bar_set_busy(gui->activity_status_bar, status_message);
|
activity_bar_set_busy(gui->activity_status_bar, status_message);
|
||||||
|
g_free(status_message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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 reffered to as vertex
|
* @brief A point in the 2D plane. Sometimes references as vertex
|
||||||
*/
|
*/
|
||||||
struct gds_point {
|
struct gds_point {
|
||||||
int x;
|
int x;
|
||||||
|
@ -50,7 +50,6 @@ 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
|
||||||
*/
|
*/
|
||||||
|
@ -20,6 +20,9 @@
|
|||||||
/**
|
/**
|
||||||
* @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>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@ -402,7 +405,7 @@ static gboolean idle_event_processor_callback(gpointer user_data)
|
|||||||
priv = gds_output_renderer_get_instance_private(renderer);
|
priv = gds_output_renderer_get_instance_private(renderer);
|
||||||
|
|
||||||
if (g_mutex_trylock(&priv->idle_function_parameters.message_lock)) {
|
if (g_mutex_trylock(&priv->idle_function_parameters.message_lock)) {
|
||||||
status_message = priv->idle_function_parameters.status_message;
|
status_message = g_strdup(priv->idle_function_parameters.status_message);
|
||||||
g_signal_emit(renderer, gds_output_renderer_signals[ASYNC_PROGRESS_CHANGED], 0, status_message);
|
g_signal_emit(renderer, gds_output_renderer_signals[ASYNC_PROGRESS_CHANGED], 0, status_message);
|
||||||
g_free(priv->idle_function_parameters.status_message);
|
g_free(priv->idle_function_parameters.status_message);
|
||||||
priv->idle_function_parameters.status_message = NULL;
|
priv->idle_function_parameters.status_message = NULL;
|
||||||
|
@ -29,15 +29,10 @@
|
|||||||
#include <gdk/gdk.h>
|
#include <gdk/gdk.h>
|
||||||
#include <gds-render/layer/layer-info.h>
|
#include <gds-render/layer/layer-info.h>
|
||||||
/**
|
/**
|
||||||
* @addtogroup LaTeX-Renderer
|
* @addtogroup LatexRenderer
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
|
||||||
* @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;
|
||||||
@ -231,7 +226,6 @@ 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)
|
||||||
|
Loading…
Reference in New Issue
Block a user