Index: svg.c =================================================================== --- svg.c (revision 36270) +++ svg.c (revision 36271) @@ -95,6 +95,7 @@ /* public: config */ FILE *outf; gds_t sbright, sdark, snormal, sclip; /* accumulators for various groups generated parallel */ + int opacity; /* private: cache */ int group_open; @@ -102,7 +103,7 @@ static rnd_svg_t pctx_, *pctx = &pctx_; -static int opacity = 100, drawing_mask, drawing_hole, photo_mode, photo_noise, flip; +static int drawing_mask, drawing_hole, photo_mode, photo_noise, flip; static rnd_composite_op_t drawing_mode; static int comp_cnt, svg_true_size = 0; @@ -223,10 +224,11 @@ return svg_attribute_list; } -void rnd_svg_init(rnd_svg_t *pctx, FILE *f) +void rnd_svg_init(rnd_svg_t *pctx, FILE *f, int opacity) { memset(pctx, 0, sizeof(rnd_svg_t)); pctx->outf = f; + pctx->opacity = opacity; } void rnd_svg_uninit(rnd_svg_t *pctx) @@ -287,8 +289,6 @@ 0, 0, PCB->hidlib.size_x, PCB->hidlib.size_y, board_color); } - opacity = options[HA_opacity].lng; - if (options[HA_as_shown].lng) { pcb_draw_setup_default_gui_xform(xform); @@ -410,7 +410,7 @@ else f = NULL; - rnd_svg_init(pctx, f); + rnd_svg_init(pctx, f, options[HA_opacity].lng); if (f != NULL) svg_header(pctx); @@ -517,7 +517,7 @@ gds_uninit(&tmp_ln); } - opa = opacity; + opa = pctx->opacity; if (is_our_mask) opa *= mask_opacity_factor; if (opa != 100)