extern "C" {
#endif
+ typedef enum { PEN_NONE, PEN_DASHED, PEN_DOTTED, PEN_SOLID } pen_type;
+ typedef enum { FILL_NONE, FILL_SOLID } fill_type;
+ typedef enum { FONT_REGULAR, FONT_BOLD, FONT_ITALIC } font_type;
+#define PENWIDTH_NORMAL 1
+#define PENWIDTH_BOLD 2
+
+ typedef struct {
+ char *fontfam, fontopt;
+ color_t pencolor, fillcolor;
+ pen_type pen;
+ fill_type fill;
+ int penwidth;
+ double fontsz;
+ } gvstyle_t;
+
#define EMIT_SORTED (1<<0)
#define EMIT_COLORS (1<<1)
#define EMIT_CLUSTERS_LAST (1<<2)
void *surface; /* gd or cairo surface */
boolean external_surface; /* surface belongs to caller */
+ gvstyle_t *style; /* active style from gvc->styles[] */
+
GVC_t *gvc; /* parent gvc */
graph_t *g; /* parent graph */
int flags; /* emit_graph flags */
gvplugin_type_t *typeptr;
};
- typedef enum { PEN_NONE, PEN_DASHED, PEN_DOTTED, PEN_SOLID } pen_type;
- typedef enum { FILL_NONE, FILL_SOLID } fill_type;
- typedef enum { FONT_REGULAR, FONT_BOLD, FONT_ITALIC } font_type;
-#define PENWIDTH_NORMAL 1
-#define PENWIDTH_BOLD 2
-
- typedef struct {
- char *fontfam, fontopt;
- color_t pencolor, fillcolor;
- pen_type pen;
- fill_type fill;
- int penwidth;
- double fontsz;
- } gvstyle_t;
-
#define MAXNEST 4
struct GVC_s {
gvstyle_t styles[MAXNEST]; /* style stack */
int SP;
- gvstyle_t *style;
/* render defaults set from graph */
color_t bgcolor; /* background color */
/* init stack */
gvc->SP = 0;
- gvc->style = &(gvc->styles[0]);
+ job->style = &(gvc->styles[0]);
gvrender_set_pencolor(gvc, DEFAULT_COLOR);
gvrender_set_fillcolor(gvc, DEFAULT_FILL);
- gvc->style->fontfam = DEFAULT_FONTNAME;
- gvc->style->fontsz = DEFAULT_FONTSIZE;
- gvc->style->fontopt = FONT_REGULAR;
- gvc->style->pen = PEN_SOLID;
- gvc->style->fill = PEN_NONE;
- gvc->style->penwidth = PENWIDTH_NORMAL;
+ job->style->fontfam = DEFAULT_FONTNAME;
+ job->style->fontsz = DEFAULT_FONTSIZE;
+ job->style->fontopt = FONT_REGULAR;
+ job->style->pen = PEN_SOLID;
+ job->style->fill = PEN_NONE;
+ job->style->penwidth = PENWIDTH_NORMAL;
}
#ifndef DISABLE_CODEGENS
else {
(gvc->SP)++;
assert((gvc->SP) < MAXNEST);
(gvc->styles)[gvc->SP] = (gvc->styles)[(gvc->SP) - 1];
- gvc->style = &((gvc->styles)[gvc->SP]);
+ job->style = &((gvc->styles)[gvc->SP]);
}
#ifndef DISABLE_CODEGENS
else {
if (gvre) {
gvc->SP--;
assert(gvc->SP >= 0);
- gvc->style = &(gvc->styles[gvc->SP]);
+ job->style = &(gvc->styles[gvc->SP]);
}
#ifndef DISABLE_CODEGENS
else {
gvrender_engine_t *gvre = job->render_engine;
if (gvre) {
- gvc->style->fontfam = fontname;
- gvc->style->fontsz = fontsize;
+ job->style->fontfam = fontname;
+ job->style->fontsz = fontsize;
}
#ifndef DISABLE_CODEGENS
else {
if (line->str && line->str[0]) {
if (gvre && gvre->textline) {
- if (gvc->style->pen != PEN_NONE) {
+ if (job->style->pen != PEN_NONE) {
gvre->textline(gvc, gvrender_ptf(gvc, p), line);
}
}
{
gvrender_job_t *job = gvc->job;
gvrender_engine_t *gvre = job->render_engine;
- color_t *color = &(gvc->style->pencolor);
+ color_t *color = &(job->style->pencolor);
if (gvre) {
gvrender_resolve_color(job->render_features, name, color);
{
gvrender_job_t *job = gvc->job;
gvrender_engine_t *gvre = job->render_engine;
- color_t *color = &(gvc->style->fillcolor);
+ color_t *color = &(job->style->fillcolor);
if (gvre) {
gvrender_resolve_color(job->render_features, name, color);
gvrender_job_t *job = gvc->job;
gvrender_engine_t *gvre = job->render_engine;
char *line, *p;
- gvstyle_t *style = gvc->style;
+ gvstyle_t *style = job->style;
if (gvre) {
while ((p = line = *s++)) {
gvrender_engine_t *gvre = job->render_engine;
if (gvre && gvre->ellipse) {
- if (gvc->style->pen != PEN_NONE) {
+ if (job->style->pen != PEN_NONE) {
/* temporary hack until client API is FP */
pointf AF[2];
int i;
gvrender_engine_t *gvre = job->render_engine;
if (gvre && gvre->polygon) {
- if (gvc->style->pen != PEN_NONE) {
+ if (job->style->pen != PEN_NONE) {
/* temporary hack until client API is FP */
static pointf *AF;
static int sizeAF;
gvrender_engine_t *gvre = job->render_engine;
if (gvre && gvre->beziercurve) {
- if (gvc->style->pen != PEN_NONE) {
+ if (job->style->pen != PEN_NONE) {
static pointf *AF2;
static int sizeAF2;
int i;
gvrender_engine_t *gvre = job->render_engine;
if (gvre && gvre->polyline) {
- if (gvc->style->pen != PEN_NONE) {
+ if (job->style->pen != PEN_NONE) {
static pointf *AF;
static int sizeAF;
int i;