From a419b6aa636e800d3d75623b97fcacf59ceb6fd4 Mon Sep 17 00:00:00 2001 From: Stefan Schippers Date: Sun, 30 Aug 2020 10:38:29 +0200 Subject: [PATCH] aligned pdf hardcopy colors to xschem light colorscheme, pdf and svg exports use the enable_layer[] array to display/hide layers as does draw(). --- src/draw.c | 1 - src/psprint.c | 15 +++++++++------ src/svgdraw.c | 15 +++++++++------ src/systemlib/font.sch | 34 +++++++++++++++++----------------- src/xschem.tcl | 10 +++++----- 5 files changed, 40 insertions(+), 35 deletions(-) diff --git a/src/draw.c b/src/draw.c index 5ec4334c..71b06eb6 100644 --- a/src/draw.c +++ b/src/draw.c @@ -596,7 +596,6 @@ void draw_temp_symbol(int what, GC gc, int n,int layer,int tmp_flip, int rot, #endif if(inst_ptr[n].ptr == -1) return; - /* if(layer != PINLAYER && !enable_layer[layer] ) return; */ if(!has_x) return; flip = inst_ptr[n].flip; diff --git a/src/psprint.c b/src/psprint.c index f6d5c192..1524b558 100644 --- a/src/psprint.c +++ b/src/psprint.c @@ -259,7 +259,8 @@ static void ps_draw_symbol(int n,int layer,int tmp_flip, int rot, xArc arc; xPolygon polygon; - + if(inst_ptr[n].ptr == -1) return; + if( (layer != PINLAYER && !enable_layer[layer]) ) return; if(layer==0) { x1=X_TO_PS(inst_ptr[n].x1); @@ -328,7 +329,7 @@ static void ps_draw_symbol(int n,int layer,int tmp_flip, int rot, ROTATION(0.0,0.0,arc.x,arc.y,x1,y1); ps_drawarc(layer, arc.fill, x0+x1, y0+y1, arc.r, angle, arc.b); } - for(j=0;j< (inst_ptr[n].ptr+instdef)->rects[layer];j++) + if( (layer != PINLAYER || enable_layer[layer]) ) for(j=0;j< (inst_ptr[n].ptr+instdef)->rects[layer];j++) { box = ((inst_ptr[n].ptr+instdef)->boxptr[layer])[j]; ROTATION(0.0,0.0,box.x1,box.y1,x1,y1); @@ -351,10 +352,12 @@ static void ps_draw_symbol(int n,int layer,int tmp_flip, int rot, textlayer = (inst_ptr[n].ptr+instdef)->txtptr[j].layer; if(textlayer < 0 || textlayer >= cadlayers) textlayer = layer; } - ps_draw_string(textlayer, text.txt_ptr, - (text.rot + ( (flip && (text.rot & 1) ) ? rot+2 : rot) ) & 0x3, - flip^text.flip, text.hcenter, text.vcenter, - x0+x1, y0+y1, text.xscale, text.yscale); + if((layer == PINLAYER && inst_ptr[n].flags & 4) || enable_layer[textlayer]) { + ps_draw_string(textlayer, text.txt_ptr, + (text.rot + ( (flip && (text.rot & 1) ) ? rot+2 : rot) ) & 0x3, + flip^text.flip, text.hcenter, text.vcenter, + x0+x1, y0+y1, text.xscale, text.yscale); + } } restore_lw(); } diff --git a/src/svgdraw.c b/src/svgdraw.c index eca5d50a..7ab53983 100644 --- a/src/svgdraw.c +++ b/src/svgdraw.c @@ -285,6 +285,8 @@ static void svg_draw_symbol(int n,int layer,int tmp_flip, int rot, xArc arc; xPolygon polygon; + if(inst_ptr[n].ptr == -1) return; + if( (layer != PINLAYER && !enable_layer[layer]) ) return; if(layer==0) { x1=X_TO_SVG(inst_ptr[n].x1); @@ -354,7 +356,7 @@ static void svg_draw_symbol(int n,int layer,int tmp_flip, int rot, svg_drawarc(layer, arc.fill, x0+x1, y0+y1, arc.r, angle, arc.b); } - for(j=0;j< (inst_ptr[n].ptr+instdef)->rects[layer];j++) + if( (layer != PINLAYER || enable_layer[layer]) ) for(j=0;j< (inst_ptr[n].ptr+instdef)->rects[layer];j++) { box = ((inst_ptr[n].ptr+instdef)->boxptr[layer])[j]; ROTATION(0.0,0.0,box.x1,box.y1,x1,y1); @@ -377,11 +379,12 @@ static void svg_draw_symbol(int n,int layer,int tmp_flip, int rot, textlayer = (inst_ptr[n].ptr+instdef)->txtptr[j].layer; if(textlayer < 0 || textlayer >= cadlayers) textlayer = layer; } - - svg_draw_string(textlayer, text.txt_ptr, - (text.rot + ( (flip && (text.rot & 1) ) ? rot+2 : rot) ) & 0x3, - flip^text.flip, text.hcenter, text.vcenter, - x0+x1, y0+y1, text.xscale, text.yscale); + if((layer == PINLAYER && inst_ptr[n].flags & 4) || enable_layer[textlayer]) { + svg_draw_string(textlayer, text.txt_ptr, + (text.rot + ( (flip && (text.rot & 1) ) ? rot+2 : rot) ) & 0x3, + flip^text.flip, text.hcenter, text.vcenter, + x0+x1, y0+y1, text.xscale, text.yscale); + } } } Tcl_SetResult(interp,"",TCL_STATIC); /*26102003 */ diff --git a/src/systemlib/font.sch b/src/systemlib/font.sch index 8bb7f674..027c95e3 100644 --- a/src/systemlib/font.sch +++ b/src/systemlib/font.sch @@ -1,4 +1,4 @@ -v {xschem version=2.9.5_RC6 file_version=1.1} +v {xschem version=2.9.7 file_version=1.2} G {font file} V {} S {} @@ -457,7 +457,6 @@ L 3 2120 5 2133.75 5 {} L 3 2180 -10 2180 0 {} L 3 2200 -35 2220 -35 {} L 3 2210 5 2220 -35 {} -L 3 2285 5 2292.5 5 {} L 3 2400 -15 2420 -25 {} L 3 2400 -15 2420 -5 {} L 3 2440 -20 2460 -20 {} @@ -465,7 +464,6 @@ L 3 2440 -10 2460 -10 {} L 3 2120 -17.5 2133.75 -17.5 {} L 3 2120 -35 2120 -17.5 {} L 3 2140 -12.5 2140 0 {} -L 3 2300 -30 2300 -1.25 {} L 3 2327.5 -30 2327.5 -25 {} L 3 2327.5 -30 2332.5 -30 {} L 3 2332.5 -30 2332.5 -25 {} @@ -483,7 +481,6 @@ L 3 2367.5 -5 2372.5 -5 {} L 3 2372.5 -5 2372.5 0 {} L 3 2040 -32.5 2045 -35 {} L 3 2040 2.5 2045 5 {} -L 3 2280 2.5 2285 5 {} L 3 2160 -22.5 2160 0 {} L 3 2166.25 -15 2173.75 -15 {} L 3 2160 -22.5 2163.75 -30 {} @@ -537,19 +534,6 @@ L 3 2245 -16.25 2248.75 -15 {} L 3 2258.75 -21.25 2260 -28.75 {} L 3 2240 -28.75 2241.25 -21.25 {} L 3 2247.5 -35 2252.5 -35 {} -L 3 2298.75 1.25 2300 -1.25 {} -L 3 2296.25 3.75 2298.75 1.25 {} -L 3 2292.5 5 2296.25 3.75 {} -L 3 2280 -30 2281.25 -32.5 {} -L 3 2281.25 -32.5 2285 -35 {} -L 3 2280 -20 2281.25 -17.5 {} -L 3 2281.25 -17.5 2285 -15 {} -L 3 2298.75 -32.5 2300 -30 {} -L 3 2295 -35 2298.75 -32.5 {} -L 3 2285 -35 2295 -35 {} -L 3 2285 -15 2297.5 -15 {} -L 3 2297.5 -15 2300 -16.25 {} -L 3 2280 -30 2280 -20 {} L 3 2176.25 -35 2177.5 -35 {} L 3 1940 -30 1940 0 {} L 3 1920 -30 1921.25 -32.5 {} @@ -698,3 +682,19 @@ L 3 2656.25 -13.75 2658.75 -11.25 {} L 3 2660 -30 2660 -22.5 {} L 3 2658.75 -18.75 2660 -22.5 {} L 3 2656.25 -16.25 2658.75 -18.75 {} +L 3 2280 -30 2280 -20 {} +L 3 2300 -30 2300 -7.5 {} +L 3 2286.25 -15 2293.75 -15 {} +L 3 2296.25 0 2300 -7.5 {} +L 3 2283.75 5 2290 3.75 {} +L 3 2290 3.75 2296.25 0 {} +L 3 2280 -20 2281.25 -17.5 {} +L 3 2281.25 -17.5 2286.25 -15 {} +L 3 2298.75 -17.5 2300 -20 {} +L 3 2293.75 -15 2298.75 -17.5 {} +L 3 2282.5 5 2283.75 5 {} +L 3 2280 -30 2281.25 -32.5 {} +L 3 2281.25 -32.5 2286.25 -35 {} +L 3 2298.75 -32.5 2300 -30 {} +L 3 2293.75 -35 2298.75 -32.5 {} +L 3 2286.25 -35 2293.75 -35 {} diff --git a/src/xschem.tcl b/src/xschem.tcl index 4d4f3eaa..66401cb3 100644 --- a/src/xschem.tcl +++ b/src/xschem.tcl @@ -3026,11 +3026,11 @@ if {!$rainbow_colors} { "#ef6158" "#fdb200"} set_ne ps_colors { - 0x000000 0x0000ee 0x7f7f7f 0x000000 0x338800 - 0xbb2200 0x0000ee 0xff0000 0xffff00 0x000000 - 0xff00ff 0x00ff00 0x0000cc 0xaaaa00 0xaaccaa - 0xff7777 0xbfff81 0x00ffcc 0xce0097 0xd2d46b - 0xef6158 0xfdb200} + 0xffffff 0x0044ee 0xaaaaaa 0x222222 0x229900 + 0xbb2200 0x00ccee 0xff0000 0x888800 0x00aaaa + 0x880088 0x00ff00 0x0000cc 0x666600 0x557755 + 0xaa2222 0x7ccc40 0x00ffcc 0xce0097 0xd2d46b + 0xef6158 0xfdb200} } else { # rainbow colors for bitmapping # skip if colors defined in ~/.xschem 20121110