Index: trunk/src/draw.c =================================================================== --- trunk/src/draw.c (revision 15589) +++ trunk/src/draw.c (revision 15590) @@ -241,7 +241,6 @@ pcb_gui->set_drawing_mode(PCB_HID_COMP_RESET, pcb_draw_out.direct, drawn_area); pcb_gui->set_drawing_mode(PCB_HID_COMP_POSITIVE, pcb_draw_out.direct, drawn_area); - pcb_r_search(PCB->Data->pad_tree, drawn_area, NULL, pcb_pad_draw_callback, &side, NULL); pcb_gui->set_drawing_mode(PCB_HID_COMP_FLUSH, pcb_draw_out.direct, drawn_area); pcb_gui->end_layer(); @@ -674,9 +673,6 @@ case PCB_TYPE_RATLINE: pcb_line_invalidate_erase((pcb_line_t *) ptr); break; - case PCB_TYPE_PAD: - pcb_pad_invalidate_erase((pcb_pad_t *) ptr); - break; case PCB_TYPE_ARC: pcb_arc_invalidate_erase((pcb_arc_t *) ptr); break; Index: trunk/src/draw_ly_spec.c =================================================================== --- trunk/src/draw_ly_spec.c (revision 15589) +++ trunk/src/draw_ly_spec.c (revision 15590) @@ -34,7 +34,6 @@ static void pcb_draw_paste_auto_(comp_ctx_t *ctx, void *side) { - pcb_pad_paste_draw(*(int *)side, ctx->screen); pcb_draw_pstks(ctx->gid, ctx->screen, 0, PCB_LYC_AUTO); } @@ -57,7 +56,6 @@ if ((cctx.grp == NULL) || (cctx.grp->len == 0)) { /* fallback: no layers -> original code: draw a single auto-add */ pcb_gui->set_drawing_mode(PCB_HID_COMP_RESET, pcb_draw_out.direct, cctx.screen); pcb_gui->set_drawing_mode(PCB_HID_COMP_POSITIVE, pcb_draw_out.direct, cctx.screen); - pcb_pad_paste_draw(side, drawn_area); pcb_gui->set_drawing_mode(PCB_HID_COMP_FLUSH, pcb_draw_out.direct, cctx.screen); } else { Index: trunk/src/obj_elem.c =================================================================== --- trunk/src/obj_elem.c (revision 15589) +++ trunk/src/obj_elem.c (revision 15590) @@ -1873,17 +1873,6 @@ void pcb_elem_pp_draw(pcb_element_t * element) { - PCB_PAD_LOOP(element); - { - if (pcb_draw_doing_pinout || pcb_draw_doing_assy || PCB_FRONT(pad) || PCB->InvisibleObjectsOn) - pcb_pad_draw(pad); - } - PCB_END_LOOP; - PCB_PIN_LOOP(element); - { - pcb_pin_draw(pin, pcb_true); - } - PCB_END_LOOP; } Index: trunk/src/obj_pad.c =================================================================== --- trunk/src/obj_pad.c (revision 15589) +++ trunk/src/obj_pad.c (revision 15590) @@ -420,163 +420,6 @@ } /*** draw ***/ -static void draw_pad_name(pcb_pad_t * pad) -{ - pcb_box_t box; - pcb_bool vert, flip_x, flip_y; - pcb_coord_t x_off, y_off; - pcb_text_t text; - char buff[128]; - const char *pn; - - if (!pad->Name || !pad->Name[0]) { - pn = PCB_EMPTY(pad->Number); - } - else { - pn = conf_core.editor.show_number ? pad->Number : pad->Name; - if (pn == NULL) - pn = "n/a"; - } - - if (pad->intconn > 0) - pcb_snprintf(buff, sizeof(buff), "%s[%d]", pn, pad->intconn); - else - strcpy(buff, pn); - text.TextString = buff; - - /* should text be vertical ? */ - vert = (pad->Point1.X == pad->Point2.X); - flip_x = conf_core.editor.view.flip_x; - flip_y = conf_core.editor.view.flip_y; - - if (vert) { - x_off = -pad->Thickness / 2 + conf_core.appearance.pinout.text_offset_y; - y_off = pad->Thickness / 2 - conf_core.appearance.pinout.text_offset_x; - box.X1 = pad->Point1.X + (flip_x ? -x_off : x_off); - box.Y1 = flip_y ? (MIN(pad->Point1.Y, pad->Point2.Y) - y_off) : (MAX(pad->Point1.Y, pad->Point2.Y) + y_off); - } - else { - x_off = -pad->Thickness / 2 + conf_core.appearance.pinout.text_offset_x; - y_off = -pad->Thickness / 2 + conf_core.appearance.pinout.text_offset_y; - box.X1 = flip_x ? (MAX(pad->Point1.X, pad->Point2.X) - x_off) : (MIN(pad->Point1.X, pad->Point2.X) + x_off); - box.Y1 = pad->Point1.Y + (flip_y ? -y_off : y_off); - } - - pcb_gui->set_color(pcb_draw_out.fgGC, conf_core.appearance.color.pin_name); - - text.Flags = (flip_x ^ flip_y) ? pcb_flag_make (PCB_FLAG_ONSOLDER) : pcb_no_flags(); - /* Set font height to approx 90% of pin thickness */ - text.Scale = 90 * pad->Thickness / PCB_FONT_CAPHEIGHT; - text.X = box.X1; - text.Y = box.Y1; - text.fid = 0; - text.Direction = (vert ? 1 : 0) + (flip_x ? 2 : 0); - - pcb_text_draw_(&text, 0, 0); -} - -static void _draw_pad(pcb_hid_gc_t gc, pcb_pad_t * pad, pcb_bool clear, pcb_bool mask) -{ - if (clear && !mask && pad->Clearance <= 0) - return; - - PCB_DRAW_BBOX(pad); - - if (conf_core.editor.thin_draw || (clear && conf_core.editor.thin_draw_poly) || conf_core.editor.wireframe_draw) - pcb_gui->thindraw_pcb_pad(gc, pad, clear, mask); - else - pcb_gui->fill_pcb_pad(gc, pad, clear, mask); -} - -void pcb_pad_draw(pcb_pad_t * pad) -{ - const char *color = NULL; - char buf[sizeof("#XXXXXX")]; - - if (pcb_draw_doing_pinout) - pcb_gui->set_color(pcb_draw_out.fgGC, conf_core.appearance.color.pin); - else if (PCB_FLAG_TEST(PCB_FLAG_WARN | PCB_FLAG_SELECTED | PCB_FLAG_FOUND, pad)) { - if (PCB_FLAG_TEST(PCB_FLAG_WARN, pad)) - color = conf_core.appearance.color.warn; - else if (PCB_FLAG_TEST(PCB_FLAG_SELECTED, pad)) - color = conf_core.appearance.color.pin_selected; - else - color = conf_core.appearance.color.connected; - } - else if (PCB_HAS_COLOROVERRIDE(pad)) { - color = pad->override_color; - } - else if (PCB_FRONT(pad)) - color = conf_core.appearance.color.pin; - else - color = conf_core.appearance.color.invisible_objects; - - if (PCB_FLAG_TEST(PCB_FLAG_ONPOINT, pad)) { - assert(color != NULL); - pcb_lighten_color(color, buf, 1.75); - color = buf; - } - - if (color != NULL) - pcb_gui->set_color(pcb_draw_out.fgGC, color); - - _draw_pad(pcb_draw_out.fgGC, pad, pcb_false, pcb_false); - - if (pcb_draw_doing_pinout) - draw_pad_name(pad); -} - -pcb_r_dir_t pcb_pad_draw_callback(const pcb_box_t * b, void *cl) -{ - pcb_pad_t *pad = (pcb_pad_t *) b; - int *side = cl; - - if (PCB_ON_SIDE(pad, *side)) - pcb_pad_draw(pad); - return PCB_R_DIR_FOUND_CONTINUE; -} - -pcb_r_dir_t pcb_pad_name_draw_callback(const pcb_box_t * b, void *cl) -{ - pcb_pad_t *pad = (pcb_pad_t *) b; - int *side = cl; - - if (PCB_ON_SIDE(pad, *side)) { - if (PCB_FLAG_TEST(PCB_FLAG_TERMNAME, pad)) - draw_pad_name(pad); - } - return PCB_R_DIR_FOUND_CONTINUE; -} - -pcb_r_dir_t pcb_pad_clear_callback(const pcb_box_t * b, void *cl) -{ - pcb_pad_t *pad = (pcb_pad_t *) b; - int *side = cl; - if (PCB_ON_SIDE(pad, *side) && pad->Mask) - _draw_pad(pcb_draw_out.pmGC, pad, pcb_true, pcb_true); - return PCB_R_DIR_FOUND_CONTINUE; -} - -/* draws solder paste layer for a given side of the board - only pads get paste */ -void pcb_pad_paste_draw(int side, const pcb_box_t * drawn_area) -{ - pcb_gui->set_color(pcb_draw_out.fgGC, conf_core.appearance.color.paste); - PCB_PAD_ALL_LOOP(PCB->Data); - { - if (PCB_ON_SIDE(pad, side) && !PCB_FLAG_TEST(PCB_FLAG_NOPASTE, pad) && pad->Mask > 0) { - pcb_coord_t save_thickness = pad->Thickness; - if (conf_core.design.paste_adjust) - pad->Thickness = max(0, pad->Thickness + conf_core.design.paste_adjust); - if (pad->Mask < pad->Thickness) - _draw_pad(pcb_draw_out.fgGC, pad, pcb_true, pcb_true); - else - _draw_pad(pcb_draw_out.fgGC, pad, pcb_false, pcb_false); - pad->Thickness = save_thickness; - } - } - PCB_ENDALL_LOOP; -} - static void GatherPadName(pcb_pad_t *Pad) { pcb_box_t box; Index: trunk/src/obj_pad_draw.h =================================================================== --- trunk/src/obj_pad_draw.h (revision 15589) +++ trunk/src/obj_pad_draw.h (revision 15590) @@ -30,14 +30,6 @@ /* Include rtree.h for these */ -#ifdef PCB_RTREE_H -pcb_r_dir_t pcb_pad_draw_callback(const pcb_box_t * b, void *cl); -pcb_r_dir_t pcb_pad_name_draw_callback(const pcb_box_t * b, void *cl); -pcb_r_dir_t pcb_pad_clear_callback(const pcb_box_t * b, void *cl); -#endif - -void pcb_pad_draw(pcb_pad_t * pad); -void pcb_pad_paste_draw(int side, const pcb_box_t * drawn_area); void pcb_pad_invalidate_erase(pcb_pad_t *Pad); void pcb_pad_name_invalidate_erase(pcb_pad_t *Pad); void pcb_pad_invalidate_draw(pcb_pad_t *Pad);