Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 29442) +++ trunk/src/draw.c (revision 29443) @@ -804,7 +804,7 @@ /* This version is about 1% slower and used rarely, thus it's all dupped from pcb_draw_layer() to keep the original speed there */ -void pcb_draw_layer_under(pcb_board_t *pcb, const pcb_layer_t *Layer, const pcb_box_t *screen, pcb_data_t *data) +void pcb_draw_layer_under(pcb_board_t *pcb, const pcb_layer_t *Layer, const pcb_box_t *screen, pcb_data_t *data, pcb_xform_t *xf) { pcb_draw_info_t info; pcb_box_t scr2; @@ -824,7 +824,7 @@ pcb_draw_info_setup(&info, pcb); info.drawn_area = screen; - info.xform_exporter = info.xform_caller = info.xform = NULL; + info.xform_exporter = info.xform_caller = info.xform = xf; xform_setup(&info, &tmp, Layer); Index: trunk/src/draw.h =================================================================== --- trunk/src/draw.h (revision 29442) +++ trunk/src/draw.h (revision 29443) @@ -135,7 +135,7 @@ /* Same as pcb_draw_layer(), but never draws an implicit outline and ignores objects that are not in the subtree of data - useful for drawing a subtree, e.g. a subc only */ -void pcb_draw_layer_under(pcb_board_t *pcb, const pcb_layer_t *Layer, const pcb_box_t *screen, pcb_data_t *data); +void pcb_draw_layer_under(pcb_board_t *pcb, const pcb_layer_t *Layer, const pcb_box_t *screen, pcb_data_t *data, pcb_xform_t *xform); /* Composite draw all layer groups matching lyt/purpi/purpose */ void pcb_draw_groups(pcb_hid_t *hid, pcb_board_t *pcb, pcb_layer_type_t lyt, int purpi, char *purpose, const pcb_box_t *screen, const pcb_color_t *default_color, pcb_layer_type_t pstk_lyt_match, int thin_draw, int invert); Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 29442) +++ trunk/src/obj_subc.c (revision 29443) @@ -1882,18 +1882,20 @@ pcb_draw_info_t info; pcb_rtree_it_t it; pcb_any_obj_t *o; + pcb_xform_t xf = {0}; + pcb_draw_setup_default_gui_xform(&xf); /* draw copper only first - order doesn't matter */ for(n = 0; n < sc->data->LayerN; n++) { pcb_layer_t *layer = &sc->data->Layer[n]; if (layer->meta.bound.type & PCB_LYT_COPPER) - pcb_draw_layer_under(PCB, layer, drawn_area, sc->data); + pcb_draw_layer_under(PCB, layer, drawn_area, sc->data, &xf); } /* draw padstacks */ info.pcb = PCB; info.drawn_area = drawn_area; - info.xform_caller = info.xform_exporter = info.xform = NULL; + info.xform_caller = info.xform_exporter = info.xform = &xf; info.layer = NULL; info.objcb.pstk.gid = -1; info.objcb.pstk.is_current = 1; @@ -1914,7 +1916,7 @@ for(n = 0; n < sc->data->LayerN; n++) { pcb_layer_t *layer = &sc->data->Layer[n]; if (layer->meta.bound.type & (PCB_LYT_SILK | PCB_LYT_BOUNDARY | PCB_LYT_MECH | PCB_LYT_DOC)) - pcb_draw_layer_under(PCB, layer, drawn_area, sc->data); + pcb_draw_layer_under(PCB, layer, drawn_area, sc->data, &xf); } /* padstack mark goes on top */