#include "main.h" #include "hid.h" #include "hid_inlines.h" void pcbhl_expose_main(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *region, pcb_xform_t *xform_caller) { hle_line_t *l; hle_rtree_it_t it; hle_rtree_box_t qb; pcb_hid_gc_t gc; /* announce start of rendering */ pcb_gui->render_burst(PCB_HID_BURST_START, ®ion->view); /* The canvas needs to be set up (reset) and put in positive drawing mode */ pcb_gui->set_drawing_mode(PCB_HID_COMP_RESET, 1, ®ion->view); pcb_gui->set_drawing_mode(PCB_HID_COMP_POSITIVE, 1, ®ion->view); /* gc is the pen */ gc = pcb_gui->make_gc(); pcb_gui->set_color(gc, pcb_color_black); /* do an rtree search on the visible region to see what needs to be drawn */ qb.x1 = region->view.X1; qb.y1 = region->view.Y1; qb.x2 = region->view.X2; qb.y2 = region->view.Y2; for(l = hle_rtree_first(&it, &hle_design.lines, &qb); l != NULL; l = hle_rtree_next(&it)) { pcb_hid_set_line_width(gc, l->thick); pcb_hid_set_line_cap(gc, pcb_cap_round); pcb_gui->draw_line(gc, l->x1, l->y1, l->x2, l->y2); } pcb_gui->set_drawing_mode(PCB_HID_COMP_FLUSH, 1, ®ion->view); pcb_gui->destroy_gc(gc); pcb_gui->render_burst(PCB_HID_BURST_END, ®ion->view); } void pcbhl_expose_preview(pcb_hid_t *hid, const pcb_hid_expose_ctx_t *e) { }