better line width calculation / restore in export images
This commit is contained in:
parent
7e820d05b0
commit
b95289ca5e
|
|
@ -3932,7 +3932,7 @@ void svg_embedded_graph(FILE *fd, xRect *r, double rx1, double ry1, double rx2,
|
|||
cairo_surface_t *png_sfc;
|
||||
int save, save_draw_window, save_draw_grid, rwi, rhi;
|
||||
size_t olength;
|
||||
const double max_size = 5000.0;
|
||||
const double max_size = 3000.0;
|
||||
|
||||
if(!has_x) return;
|
||||
rw = fabs(rx2 -rx1);
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ void ps_embedded_graph(xRect* r, double rx1, double ry1, double rx2, double ry2)
|
|||
double rw, rh, scale;
|
||||
cairo_surface_t* png_sfc;
|
||||
int save, save_draw_window, save_draw_grid, rwi, rhi;
|
||||
const double max_size = 5000.0;
|
||||
const double max_size = 3000.0;
|
||||
int d_c;
|
||||
unsigned char* jpgData = NULL;
|
||||
size_t fileSize = 0;
|
||||
|
|
@ -990,7 +990,6 @@ void create_ps(char **psfile, int what, int fullzoom)
|
|||
int c,i, textlayer;
|
||||
int old_grid;
|
||||
const char *textfont;
|
||||
int save_change_lw;
|
||||
static Zoom_info zi;
|
||||
|
||||
dbg(1, "create_ps(): what = %d, fullzoom=%d\n", what, fullzoom);
|
||||
|
|
@ -1209,8 +1208,6 @@ void create_ps(char **psfile, int what, int fullzoom)
|
|||
xctx->text[i].xscale, xctx->text[i].yscale);
|
||||
}
|
||||
}
|
||||
save_change_lw = tclgetintvar("change_lw");
|
||||
tclsetintvar("change_lw", 0);
|
||||
for(c=0;c<cadlayers; ++c)
|
||||
{
|
||||
set_ps_colors(c);
|
||||
|
|
@ -1247,7 +1244,6 @@ void create_ps(char **psfile, int what, int fullzoom)
|
|||
}
|
||||
dbg(1, "create_ps(): starting drawing symbols on layer %d\n", c);
|
||||
} /* for(c=0;c<cadlayers; ++c) */
|
||||
tclsetintvar("change_lw", save_change_lw);
|
||||
|
||||
/* bring outside previous for(c=0...) loop since ps_embedded_graph() calls ps_draw_symbol() */
|
||||
for(c=0;c<cadlayers; ++c) {
|
||||
|
|
|
|||
|
|
@ -3067,6 +3067,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
my_strncpy(xctx->plotfile, Tcl_GetStringResult(interp), S(xctx->plotfile));
|
||||
}
|
||||
if(!strcmp(argv[2], "pdf") || !strcmp(argv[2],"ps")) {
|
||||
double save_lw = xctx->lw;
|
||||
int fullzoom = 0;
|
||||
int w = 0, h = 0;
|
||||
double x1, y1, x2, y2;
|
||||
|
|
@ -3113,7 +3114,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
ps_draw(7, fullzoom);
|
||||
save_restore_zoom(0, &zi);
|
||||
resetwin(1, 1, 1, 0, 0);
|
||||
change_linewidth(-1.);
|
||||
change_linewidth(save_lw);
|
||||
} else {
|
||||
fullzoom = 0;
|
||||
ps_draw(7, fullzoom);
|
||||
|
|
@ -3124,6 +3125,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
ps_draw(7, fullzoom);
|
||||
}
|
||||
else if(!strcmp(argv[2], "png")) {
|
||||
double save_lw = xctx->lw;
|
||||
int w = 0, h = 0;
|
||||
double x1, y1, x2, y2;
|
||||
if(argc == 6 && xctx->lastsel == 0) {
|
||||
|
|
@ -3167,13 +3169,14 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
print_image();
|
||||
save_restore_zoom(0, &zi);
|
||||
resetwin(1, 1, 1, 0, 0);
|
||||
change_linewidth(-1.);
|
||||
change_linewidth(save_lw);
|
||||
} else {
|
||||
print_image();
|
||||
}
|
||||
}
|
||||
else if(!strcmp(argv[2], "svg")) {
|
||||
int w = 0, h = 0, save_change_lw;
|
||||
double save_lw = xctx->lw;
|
||||
int w = 0, h = 0;
|
||||
double x1, y1, x2, y2;
|
||||
if(argc == 6 && xctx->lastsel == 0) {
|
||||
w = atoi(argv[4]);
|
||||
|
|
@ -3183,10 +3186,7 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
save_restore_zoom(1, &zi);
|
||||
set_viewport_size(w, h, xctx->lw);
|
||||
zoom_full(0, 0, 2 * tclgetboolvar("zoom_full_center"), 0.97);
|
||||
save_change_lw = tclgetintvar("change_lw");
|
||||
tclsetintvar("change_lw", 0);
|
||||
svg_draw();
|
||||
tclsetintvar("change_lw", save_change_lw);
|
||||
save_restore_zoom(0, &zi);
|
||||
} else if(argc == 10 || xctx->lastsel) {
|
||||
if(xctx->lastsel) {
|
||||
|
|
@ -3213,16 +3213,13 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
|
|||
save_restore_zoom(1, &zi);
|
||||
set_viewport_size(w, h, xctx->lw);
|
||||
zoom_box(x1, y1, x2, y2, 1.0);
|
||||
save_change_lw = tclgetintvar("change_lw");
|
||||
tclsetintvar("change_lw", 0);
|
||||
svg_draw();
|
||||
tclsetintvar("change_lw", save_change_lw);
|
||||
save_restore_zoom(0, &zi);
|
||||
} else {
|
||||
svg_draw();
|
||||
}
|
||||
resetwin(1, 1, 1, 0, 0);
|
||||
change_linewidth(-1.);
|
||||
change_linewidth(save_lw);
|
||||
}
|
||||
draw();
|
||||
Tcl_ResetResult(interp);
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue