@@ -33,7 +33,7 @@ function drawtext(ctx, text, color, flip) {
3333 var interline = ( text . height * 1.5 + text . thickness ) / 2 ;
3434 var txt = text . text . split ( "\n" ) ;
3535 // KiCad ignores last empty line.
36- if ( txt [ txt . length - 1 ] == '' ) txt . pop ( ) ;
36+ if ( txt [ txt . length - 1 ] == '' ) txt . pop ( ) ;
3737 ctx . rotate ( deg2rad ( angle ) ) ;
3838 ctx . fillStyle = color ;
3939 ctx . strokeStyle = color ;
@@ -262,15 +262,15 @@ function drawModules(canvas, layer, scalefactor, highlight) {
262262 }
263263}
264264
265- function drawSilkscreen ( canvas , layer , scalefactor ) {
265+ function drawBgLayer ( layername , canvas , layer , scalefactor , edgeColor , polygonColor , textColor ) {
266266 var ctx = canvas . getContext ( "2d" ) ;
267- for ( var d of pcbdata . silkscreen [ layer ] ) {
267+ for ( var d of pcbdata [ layername ] [ layer ] ) {
268268 if ( [ "segment" , "arc" , "circle" ] . includes ( d . type ) ) {
269- drawedge ( ctx , scalefactor , d , "#aa4" ) ;
269+ drawedge ( ctx , scalefactor , d , edgeColor ) ;
270270 } else if ( d . type == "polygon" ) {
271- drawPolygonShape ( ctx , d , "#4aa" ) ;
271+ drawPolygonShape ( ctx , d , polygonColor ) ;
272272 } else {
273- drawtext ( ctx , d , "#4aa" , layer == "B" ) ;
273+ drawtext ( ctx , d , textColor , layer == "B" ) ;
274274 }
275275 }
276276}
@@ -296,11 +296,26 @@ function drawHighlights() {
296296
297297function drawBackground ( canvasdict ) {
298298 clearCanvas ( canvasdict . bg ) ;
299+ clearCanvas ( canvasdict . fab ) ;
299300 clearCanvas ( canvasdict . silk ) ;
300301 drawEdges ( canvasdict . bg , canvasdict . transform . s ) ;
301302 drawModules ( canvasdict . bg , canvasdict . layer ,
302303 canvasdict . transform . s * canvasdict . transform . zoom , false ) ;
303- drawSilkscreen ( canvasdict . silk , canvasdict . layer , canvasdict . transform . s ) ;
304+
305+ var style = getComputedStyle ( topmostdiv ) ;
306+ var edgeColor = style . getPropertyValue ( '--silkscreen-edge-color' ) ;
307+ var polygonColor = style . getPropertyValue ( '--silkscreen-polygon-color' ) ;
308+ var textColor = style . getPropertyValue ( '--silkscreen-text-color' ) ;
309+ drawBgLayer (
310+ "silkscreen" , canvasdict . silk , canvasdict . layer , canvasdict . transform . s ,
311+ edgeColor , polygonColor , textColor ) ;
312+
313+ edgeColor = style . getPropertyValue ( '--fabrication-edge-color' ) ;
314+ polygonColor = style . getPropertyValue ( '--fabrication-polygon-color' ) ;
315+ textColor = style . getPropertyValue ( '--fabrication-text-color' ) ;
316+ drawBgLayer (
317+ "fabrication" , canvasdict . fab , canvasdict . layer , canvasdict . transform . s ,
318+ edgeColor , polygonColor , textColor ) ;
304319}
305320
306321function prepareCanvas ( canvas , flip , transform ) {
@@ -319,7 +334,7 @@ function prepareCanvas(canvas, flip, transform) {
319334
320335function prepareLayer ( canvasdict ) {
321336 var flip = ( canvasdict . layer == "B" ) ;
322- for ( var c of [ "bg" , "silk" , "highlight" ] ) {
337+ for ( var c of [ "bg" , "fab" , " silk", "highlight" ] ) {
323338 prepareCanvas ( canvasdict [ c ] , flip , canvasdict . transform ) ;
324339 }
325340}
@@ -371,7 +386,7 @@ function recalcLayerScale(canvasdict) {
371386 canvasdict . transform . x = - ( ( bbox . maxx + bbox . minx ) * scalefactor - width ) * 0.5 ;
372387 }
373388 canvasdict . transform . y = - ( ( bbox . maxy + bbox . miny ) * scalefactor - height ) * 0.5 ;
374- for ( var c of [ "bg" , "silk" , "highlight" ] ) {
389+ for ( var c of [ "bg" , "fab" , " silk", "highlight" ] ) {
375390 canvas = canvasdict [ c ] ;
376391 canvas . width = width ;
377392 canvas . height = height ;
@@ -523,7 +538,7 @@ function addMouseHandlers(div, layerdict) {
523538 div . onwheel = function ( e ) {
524539 handleMouseWheel ( e , layerdict ) ;
525540 }
526- for ( var element of [ div , layerdict . bg , layerdict . silk , layerdict . highlight ] ) {
541+ for ( var element of [ div , layerdict . bg , layerdict . fab , layerdict . silk , layerdict . highlight ] ) {
527542 element . addEventListener ( "contextmenu" , function ( e ) {
528543 e . preventDefault ( ) ;
529544 } , false ) ;
@@ -557,6 +572,7 @@ function initRender() {
557572 mousedown : false ,
558573 } ,
559574 bg : document . getElementById ( "F_bg" ) ,
575+ fab : document . getElementById ( "F_fab" ) ,
560576 silk : document . getElementById ( "F_slk" ) ,
561577 highlight : document . getElementById ( "F_hl" ) ,
562578 layer : "F" ,
@@ -574,6 +590,7 @@ function initRender() {
574590 mousedown : false ,
575591 } ,
576592 bg : document . getElementById ( "B_bg" ) ,
593+ fab : document . getElementById ( "B_fab" ) ,
577594 silk : document . getElementById ( "B_slk" ) ,
578595 highlight : document . getElementById ( "B_hl" ) ,
579596 layer : "B" ,
0 commit comments