Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 21189) +++ trunk/src/draw.c (revision 21190) @@ -951,7 +951,7 @@ pcb_gui = pcb_draw_out.hid; } -void pcb_hid_expose_all(pcb_hid_t * hid, const pcb_hid_expose_ctx_t *ctx) +void pcb_hid_expose_all(pcb_hid_t * hid, const pcb_hid_expose_ctx_t *ctx, pcb_xform_t *xform_caller) { if (!pcb_draw_inhibit) { pcb_output_t save; @@ -960,7 +960,7 @@ expose_begin(&save, hid); info.pcb = PCB; info.drawn_area = &ctx->view; - info.xform_caller = info.xform = NULL; + info.xform_caller = info.xform = xform_caller; info.layer = NULL; draw_everything(&info); expose_end(&save); Index: trunk/src/draw.h =================================================================== --- trunk/src/draw.h (revision 21189) +++ trunk/src/draw.h (revision 21190) @@ -172,4 +172,13 @@ #define PCB_DRAW_TERM_GFX_WIDTH (-3) +/* Normal expose: draw all layers with all flags (no .content is used) */ +void pcb_hid_expose_all(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *region, pcb_xform_t *xform_caller); + +/* Layer preview expose: draws a single layer; content.layer_id is used */ +void pcb_hid_expose_layer(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *ly); + +/* generic, dialog/callbakc based preview expose */ +void pcb_hid_expose_generic(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *e); + #endif Index: trunk/src/hid.h =================================================================== --- trunk/src/hid.h (revision 21189) +++ trunk/src/hid.h (revision 21190) @@ -556,16 +556,6 @@ typedef void (*pcb_hid_expose_t)(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *ctx); -/* Normal expose: draw all layers with all flags (no .content is used) */ -void pcb_hid_expose_all(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *region); - -/* Layer preview expose: draws a single layer; content.layer_id is used */ -void pcb_hid_expose_layer(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *ly); - -/* generic, dialog/callbakc based preview expose */ -void pcb_hid_expose_generic(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *e); - - /* This is initially set to a "no-gui" GUI, and later reset by main. hid_expose_callback also temporarily set it for drawing. */ extern pcb_hid_t *pcb_gui; Index: trunk/src_plugins/dialogs/dlg_drc.c =================================================================== --- trunk/src_plugins/dialogs/dlg_drc.c (revision 21189) +++ trunk/src_plugins/dialogs/dlg_drc.c (revision 21190) @@ -156,7 +156,7 @@ /* draw the board */ old_termlab = pcb_draw_force_termlab; pcb_draw_force_termlab = 1; - pcb_hid_expose_all(pcb_gui, e); + pcb_hid_expose_all(pcb_gui, e, NULL); pcb_draw_force_termlab = old_termlab; } Index: trunk/src_plugins/export_dxf/dxf.c =================================================================== --- trunk/src_plugins/export_dxf/dxf.c (revision 21189) +++ trunk/src_plugins/export_dxf/dxf.c (revision 21190) @@ -37,6 +37,7 @@ #include "math_helper.h" #include "board.h" #include "data.h" +#include "draw.h" #include "error.h" #include "layer.h" #include "plugins.h" @@ -236,7 +237,7 @@ dxf_ctx.drill_fill = options[HA_drill_fill].int_value; dxf_ctx.drill_contour = options[HA_drill_contour].int_value; - pcb_hid_expose_all(&dxf_hid, &hectx); + pcb_hid_expose_all(&dxf_hid, &hectx, NULL); conf_update(NULL, -1); /* restore forced sets */ } Index: trunk/src_plugins/export_gcode/gcode.c =================================================================== --- trunk/src_plugins/export_gcode/gcode.c (revision 21189) +++ trunk/src_plugins/export_gcode/gcode.c (revision 21190) @@ -52,6 +52,7 @@ #include "board.h" #include "error.h" #include "data.h" +#include "draw.h" #include "rats.h" #include "hid_cam.h" #include "layer.h" @@ -355,7 +356,7 @@ lastbrush = (gdImagePtr) ((void *) -1); lastcolor = -1; - pcb_hid_expose_all(&gcode_hid, &ctx); + pcb_hid_expose_all(&gcode_hid, &ctx, NULL); } static void gcode_do_export(pcb_hid_attr_val_t * options) Index: trunk/src_plugins/export_gerber/gerber.c =================================================================== --- trunk/src_plugins/export_gerber/gerber.c (revision 21189) +++ trunk/src_plugins/export_gerber/gerber.c (revision 21190) @@ -773,12 +773,12 @@ lastgroup = -1; layer_list_idx = 0; finding_apertures = 1; - pcb_hid_expose_all(&gerber_hid, &ctx); + pcb_hid_expose_all(&gerber_hid, &ctx, NULL); lastgroup = -2; layer_list_idx = 0; finding_apertures = 0; - pcb_hid_expose_all(&gerber_hid, &ctx); + pcb_hid_expose_all(&gerber_hid, &ctx, NULL); memcpy(pcb_layer_stack, saved_layer_stack, sizeof(pcb_layer_stack)); Index: trunk/src_plugins/export_openems/export_openems.c =================================================================== --- trunk/src_plugins/export_openems/export_openems.c (revision 21189) +++ trunk/src_plugins/export_openems/export_openems.c (revision 21190) @@ -36,6 +36,7 @@ #include "board.h" #include "data.h" #include "data_it.h" +#include "draw.h" #include "compat_misc.h" #include "plugins.h" #include "safe_fs.h" @@ -610,7 +611,7 @@ openems_write_outline(&wctx); fprintf(wctx.f, "%%%%%% Copper objects\n"); - pcb_hid_expose_all(&openems_hid, &ctx); + pcb_hid_expose_all(&openems_hid, &ctx, NULL); fprintf(wctx.f, "%%%%%% Testpoints on terminals\n"); openems_write_testpoints(&wctx, wctx.pcb->Data); Index: trunk/src_plugins/export_openscad/export_openscad.c =================================================================== --- trunk/src_plugins/export_openscad/export_openscad.c (revision 21189) +++ trunk/src_plugins/export_openscad/export_openscad.c (revision 21190) @@ -40,6 +40,7 @@ #include "compat_misc.h" #include "board.h" #include "data.h" +#include "draw.h" #include "error.h" #include "layer.h" #include "math_helper.h" @@ -159,7 +160,7 @@ /* conf_force_set_bool(conf_core.editor.check_planes, 0);*/ conf_force_set_bool(conf_core.editor.show_solder_side, 0); - pcb_hid_expose_all(&openscad_hid, &ctx); + pcb_hid_expose_all(&openscad_hid, &ctx, NULL); conf_update(NULL, -1); /* restore forced sets */ } Index: trunk/src_plugins/export_png/png.c =================================================================== --- trunk/src_plugins/export_png/png.c (revision 21189) +++ trunk/src_plugins/export_png/png.c (revision 21190) @@ -41,6 +41,7 @@ #include "board.h" #include "data.h" +#include "draw.h" #include "error.h" #include "layer.h" #include "misc_util.h" @@ -636,7 +637,7 @@ } ctx.view = *bounds; - pcb_hid_expose_all(&png_hid, &ctx); + pcb_hid_expose_all(&png_hid, &ctx, NULL); memcpy(pcb_layer_stack, saved_layer_stack, sizeof(pcb_layer_stack)); conf_update(NULL, -1); /* restore forced sets */ Index: trunk/src_plugins/export_ps/eps.c =================================================================== --- trunk/src_plugins/export_ps/eps.c (revision 21189) +++ trunk/src_plugins/export_ps/eps.c (revision 21190) @@ -10,6 +10,7 @@ #include "math_helper.h" #include "board.h" #include "data.h" +#include "draw.h" #include "layer.h" #include "pcb-printf.h" #include "safe_fs.h" @@ -306,7 +307,7 @@ fprintf(f, "/a { gsave setlinewidth translate scale 0 0 1 5 3 roll arc stroke grestore} bind def\n"); ctx.view = *bounds; - pcb_hid_expose_all(&eps_hid, &ctx); + pcb_hid_expose_all(&eps_hid, &ctx, NULL); fprintf(f, "showpage\n"); Index: trunk/src_plugins/export_ps/ps.c =================================================================== --- trunk/src_plugins/export_ps/ps.c (revision 21189) +++ trunk/src_plugins/export_ps/ps.c (revision 21190) @@ -695,13 +695,13 @@ global.doing_toc = 1; global.pagecount = 1; /* 'pagecount' is modified by pcb_hid_expose_all() call */ - pcb_hid_expose_all(&ps_hid, &global.exps); + pcb_hid_expose_all(&ps_hid, &global.exps, NULL); } global.pagecount = 1; /* Reset 'pagecount' if single file */ global.doing_toc = 0; ps_set_layer_group(-1, NULL, -1, -1, 0, -1, NULL); /* reset static vars */ - pcb_hid_expose_all(&ps_hid, &global.exps); + pcb_hid_expose_all(&ps_hid, &global.exps, NULL); if (the_file) fprintf(the_file, "showpage\n"); Index: trunk/src_plugins/export_svg/svg.c =================================================================== --- trunk/src_plugins/export_svg/svg.c (revision 21189) +++ trunk/src_plugins/export_svg/svg.c (revision 21190) @@ -44,6 +44,7 @@ #include "math_helper.h" #include "board.h" #include "data.h" +#include "draw.h" #include "error.h" #include "layer.h" #include "misc_util.h" @@ -251,7 +252,7 @@ gds_init(&sbright); gds_init(&sdark); gds_init(&snormal); - pcb_hid_expose_all(&svg_hid, &ctx); + pcb_hid_expose_all(&svg_hid, &ctx, NULL); conf_update(NULL, -1); /* restore forced sets */ } Index: trunk/src_plugins/hid_gtk2_gdk/gtkhid-gdk.c =================================================================== --- trunk/src_plugins/hid_gtk2_gdk/gtkhid-gdk.c (revision 21189) +++ trunk/src_plugins/hid_gtk2_gdk/gtkhid-gdk.c (revision 21190) @@ -5,6 +5,7 @@ #include "crosshair.h" #include "data.h" +#include "draw.h" #include "layer.h" #include "grid.h" #include "hid_draw_helpers.h" @@ -1153,7 +1154,7 @@ ghid_gdk_draw_bg_image(); - pcb_hid_expose_all(>k2_gdk_hid, &ctx); + pcb_hid_expose_all(>k2_gdk_hid, &ctx, NULL); ghid_gdk_draw_grid(); /* In some cases we are called with the crosshair still off */ Index: trunk/src_plugins/hid_gtk2_gl/gtkhid-gl.c =================================================================== --- trunk/src_plugins/hid_gtk2_gl/gtkhid-gl.c (revision 21189) +++ trunk/src_plugins/hid_gtk2_gl/gtkhid-gl.c (revision 21190) @@ -972,7 +972,7 @@ ghid_gl_invalidate_current_gc(); glMatrixMode(GL_PROJECTION); glPushMatrix(); - pcb_hid_expose_all(>k2_gl_hid, &ctx); + pcb_hid_expose_all(>k2_gl_hid, &ctx, NULL); drawgl_flush(); glMatrixMode(GL_PROJECTION); glPopMatrix(); Index: trunk/src_plugins/hid_gtk3_cairo/gtkhid-cairo.c =================================================================== --- trunk/src_plugins/hid_gtk3_cairo/gtkhid-cairo.c (revision 21189) +++ trunk/src_plugins/hid_gtk3_cairo/gtkhid-cairo.c (revision 21190) @@ -1146,7 +1146,7 @@ ghid_cairo_draw_bg_image(); - pcb_hid_expose_all(pcb_gui, &ctx); + pcb_hid_expose_all(pcb_gui, &ctx, NULL); ghid_cairo_draw_grid(); /* Draws "GUI" information on top of design */ Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 21189) +++ trunk/src_plugins/hid_lesstif/main.c (revision 21190) @@ -15,6 +15,7 @@ #include #include "data.h" +#include "draw.h" #include "crosshair.h" #include "conf_hid.h" #include "layer.h" @@ -747,7 +748,7 @@ time(&start); do { XFillRectangle(display, pixmap, bg_gc, 0, 0, view_width, view_height); - pcb_hid_expose_all(&lesstif_hid, &ctx); + pcb_hid_expose_all(&lesstif_hid, &ctx, NULL); XSync(display, 0); time(&end); i++; @@ -2379,7 +2380,7 @@ } } DrawBackgroundImage(); - pcb_hid_expose_all(&lesstif_hid, &ctx); + pcb_hid_expose_all(&lesstif_hid, &ctx, NULL); lesstif_drawing_mode = PCB_HID_COMP_POSITIVE; draw_grid(); show_crosshair(0); /* To keep the drawn / not drawn info correct */ Index: trunk/src_plugins/hid_remote/remote.c =================================================================== --- trunk/src_plugins/hid_remote/remote.c (revision 21189) +++ trunk/src_plugins/hid_remote/remote.c (revision 21190) @@ -8,6 +8,7 @@ #include "board.h" #include "hid.h" #include "data.h" +#include "draw.h" #include "layer.h" #include "pcb-printf.h" #include "plugins.h" @@ -106,7 +107,7 @@ if (remote_proto_send_ready() != 0) exit(1); - pcb_hid_expose_all(&remote_hid, &ctx); + pcb_hid_expose_all(&remote_hid, &ctx, NULL); /* main loop, parser */ if (remote_proto_parse_all() != 0)