Index: trunk/src/obj_subc.c =================================================================== --- trunk/src/obj_subc.c (revision 36693) +++ trunk/src/obj_subc.c (revision 36694) @@ -694,7 +694,7 @@ } if (dstly != NULL) - pcb_text_new(dstly, pcb_font_old(PCB, 0, 0), buffer->X, buffer->Y, 0, 100, 0, "%a.parent.refdes%", pcb_flag_make(PCB_FLAG_DYNTEXT | PCB_FLAG_FLOATER | botflg)); + pcb_text_new(dstly, pcb_font(PCB, 0, 0), buffer->X, buffer->Y, 0, 100, 0, "%a.parent.refdes%", pcb_flag_make(PCB_FLAG_DYNTEXT | PCB_FLAG_FLOATER | botflg)); else rnd_message(RND_MSG_ERROR, "Error: can't create primary silk layer in subc for placing the refdes\n"); } Index: trunk/src/obj_text.c =================================================================== --- trunk/src/obj_text.c (revision 36693) +++ trunk/src/obj_text.c (revision 36694) @@ -177,7 +177,7 @@ }; -pcb_text_t *pcb_text_new_(pcb_layer_t *Layer, pcb_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, pcb_text_mirror_t mirror, int Scale, double scx, double scy, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags) +pcb_text_t *pcb_text_new_(pcb_layer_t *Layer, rnd_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, pcb_text_mirror_t mirror, int Scale, double scx, double scy, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags) { pcb_text_t *text; @@ -206,13 +206,13 @@ text->scale_y = scy; text->thickness = thickness; text->TextString = rnd_strdup(TextString); - text->fid = PCBFont->rnd_font.id; + text->fid = PCBFont->id; return text; } /* creates a new text on a layer */ -pcb_text_t *pcb_text_new(pcb_layer_t *Layer, pcb_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, int Scale, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags) +pcb_text_t *pcb_text_new(pcb_layer_t *Layer, rnd_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, int Scale, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags) { pcb_text_t *text = pcb_text_new_(Layer, PCBFont, X, Y, rot, 0, Scale, 0, 0, thickness, TextString, Flags); @@ -221,7 +221,7 @@ return text; } -pcb_text_t *pcb_text_new_scaled(pcb_layer_t *Layer, pcb_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, pcb_text_mirror_t mirror, int Scale, double scx, double scy, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags) +pcb_text_t *pcb_text_new_scaled(pcb_layer_t *Layer, rnd_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, pcb_text_mirror_t mirror, int Scale, double scx, double scy, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags) { pcb_text_t *text = pcb_text_new_(Layer, PCBFont, X, Y, rot, mirror, Scale, scx, scy, thickness, TextString, Flags); @@ -230,7 +230,7 @@ return text; } -pcb_text_t *pcb_text_new_by_bbox(pcb_layer_t *Layer, pcb_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, rnd_coord_t bbw, rnd_coord_t bbh, rnd_coord_t anchx, rnd_coord_t anchy, double scxy, pcb_text_mirror_t mirror, double rot, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags) +pcb_text_t *pcb_text_new_by_bbox(pcb_layer_t *Layer, rnd_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, rnd_coord_t bbw, rnd_coord_t bbh, rnd_coord_t anchx, rnd_coord_t anchy, double scxy, pcb_text_mirror_t mirror, double rot, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags) { rnd_coord_t obw, obh, nbw, nbh; double gsc, gscx, gscy, cs, sn, mx = 1, my = 1, nanchx, nanchy; @@ -303,7 +303,7 @@ pcb_text_t *pcb_text_dup(pcb_layer_t *dst, pcb_text_t *src) { - pcb_text_t *t = pcb_text_new_scaled(dst, pcb_font_old(PCB, src->fid, 1), src->X, src->Y, src->rot, text_mirror_bits(src), src->Scale, src->scale_x, src->scale_y, src->thickness, src->TextString, src->Flags); + pcb_text_t *t = pcb_text_new_scaled(dst, pcb_font(PCB, src->fid, 1), src->X, src->Y, src->rot, text_mirror_bits(src), src->Scale, src->scale_x, src->scale_y, src->thickness, src->TextString, src->Flags); t->clearance = src->clearance; pcb_text_copy_meta(t, src); return t; @@ -311,7 +311,7 @@ pcb_text_t *pcb_text_dup_at(pcb_layer_t *dst, pcb_text_t *src, rnd_coord_t dx, rnd_coord_t dy) { - pcb_text_t *t = pcb_text_new_scaled(dst, pcb_font_old(PCB, src->fid, 1), src->X+dx, src->Y+dy, src->rot, text_mirror_bits(src), src->Scale, src->scale_x, src->scale_y, src->thickness, src->TextString, src->Flags); + pcb_text_t *t = pcb_text_new_scaled(dst, pcb_font(PCB, src->fid, 1), src->X+dx, src->Y+dy, src->rot, text_mirror_bits(src), src->Scale, src->scale_x, src->scale_y, src->thickness, src->TextString, src->Flags); t->clearance = src->clearance; pcb_text_copy_meta(t, src); return t; @@ -528,7 +528,7 @@ void *pcb_textop_add_to_buffer(pcb_opctx_t *ctx, pcb_layer_t *Layer, pcb_text_t *Text) { pcb_layer_t *layer = &ctx->buffer.dst->Layer[pcb_layer_id(ctx->buffer.src, Layer)]; - pcb_text_t *t = pcb_text_new_scaled(layer, pcb_font_old(PCB, Text->fid, 1), Text->X, Text->Y, Text->rot, text_mirror_bits(Text), Text->Scale, Text->scale_x, Text->scale_y, Text->thickness, Text->TextString, pcb_flag_mask(Text->Flags, ctx->buffer.extraflg)); + pcb_text_t *t = pcb_text_new_scaled(layer, pcb_font(PCB, Text->fid, 1), Text->X, Text->Y, Text->rot, text_mirror_bits(Text), Text->Scale, Text->scale_x, Text->scale_y, Text->thickness, Text->TextString, pcb_flag_mask(Text->Flags, ctx->buffer.extraflg)); t->clearance = Text->clearance; pcb_text_copy_meta(t, Text); @@ -729,7 +729,7 @@ { pcb_text_t *text; - text = pcb_text_new_scaled(Layer, pcb_font_old(PCB, Text->fid, 1), Text->X + ctx->copy.DeltaX, + text = pcb_text_new_scaled(Layer, pcb_font(PCB, Text->fid, 1), Text->X + ctx->copy.DeltaX, Text->Y + ctx->copy.DeltaY, Text->rot, text_mirror_bits(Text), Text->Scale, Text->scale_x, Text->scale_y, Text->thickness, Text->TextString, pcb_flag_mask(Text->Flags, PCB_FLAG_FOUND)); if (ctx->copy.keep_id) text->ID = Text->ID; Index: trunk/src/obj_text.h =================================================================== --- trunk/src/obj_text.h (revision 36693) +++ trunk/src/obj_text.h (revision 36694) @@ -69,13 +69,13 @@ pcb_text_t *pcb_text_alloc(pcb_layer_t * layer); pcb_text_t *pcb_text_alloc_id(pcb_layer_t *layer, long int id); void pcb_text_free(pcb_text_t * data); -pcb_text_t *pcb_text_new(pcb_layer_t *Layer, pcb_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, int Scale, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags); +pcb_text_t *pcb_text_new(pcb_layer_t *Layer, rnd_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, int Scale, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags); pcb_text_t *pcb_text_dup(pcb_layer_t *dst, pcb_text_t *src); pcb_text_t *pcb_text_dup_at(pcb_layer_t *dst, pcb_text_t *src, rnd_coord_t dx, rnd_coord_t dy); void *pcb_text_destroy(pcb_layer_t *Layer, pcb_text_t *Text); /* creates the text object on the layer without rtree or poly clipping administration */ -pcb_text_t *pcb_text_new_(pcb_layer_t *Layer, pcb_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, pcb_text_mirror_t mirror, int Scale, double scx, double scy, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags); +pcb_text_t *pcb_text_new_(pcb_layer_t *Layer, rnd_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, double rot, pcb_text_mirror_t mirror, int Scale, double scx, double scy, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags); /* Create new text by bounding box: bbw and bbw are the expected bounding box width and height, scxy is the expected text width/height ratio; place the @@ -83,7 +83,7 @@ text will typically be smaller than the input bounding box, with wither bbox width or bbox height matching the original, but text aspect ratio kept and anchor point placed at X;Y. */ -pcb_text_t *pcb_text_new_by_bbox(pcb_layer_t *Layer, pcb_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, rnd_coord_t bbw, rnd_coord_t bbh, rnd_coord_t anchx, rnd_coord_t anchy, double scxy, pcb_text_mirror_t mirror, double rot, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags); +pcb_text_t *pcb_text_new_by_bbox(pcb_layer_t *Layer, rnd_font_t *PCBFont, rnd_coord_t X, rnd_coord_t Y, rnd_coord_t bbw, rnd_coord_t bbh, rnd_coord_t anchx, rnd_coord_t anchy, double scxy, pcb_text_mirror_t mirror, double rot, rnd_coord_t thickness, const char *TextString, pcb_flag_t Flags); /* Add objects without creating them or making any "sanity modifications" to them */ Index: trunk/src/object_act.c =================================================================== --- trunk/src/object_act.c (revision 36693) +++ trunk/src/object_act.c (revision 36694) @@ -930,7 +930,7 @@ return 1; } - t = pcb_text_new(ly, pcb_font_old(pcb, fid, 1), x, y, dir*90, scale, 0, txt, pcb_no_flags()); + t = pcb_text_new(ly, pcb_font(pcb, fid, 1), x, y, dir*90, scale, 0, txt, pcb_no_flags()); res->type = FGW_LONG; res->val.nat_long = (t == NULL ? -1 : t->ID); return 0; Index: trunk/src_plugins/act_draw/act_draw.c =================================================================== --- trunk/src_plugins/act_draw/act_draw.c (revision 36693) +++ trunk/src_plugins/act_draw/act_draw.c (revision 36694) @@ -167,7 +167,7 @@ int scale, fontid; double rot; pcb_flag_t flags; - pcb_font_t *font; + rnd_font_t *font; DRAWOPTARG; RND_ACT_IRES(0); @@ -185,7 +185,7 @@ if ((data != pcb->Data) || (layer == NULL)) return 0; - font = pcb_font_old(pcb, fontid, 0); + font = pcb_font(pcb, fontid, 0); if (font != NULL) { flags = pcb_strflg_s2f(sflg, flg_error, NULL, 0); text = pcb_text_new(layer, font, x, y, rot, scale, th, str, flags); Index: trunk/src_plugins/export_openems/mesh.c =================================================================== --- trunk/src_plugins/export_openems/mesh.c (revision 36693) +++ trunk/src_plugins/export_openems/mesh.c (revision 36694) @@ -731,9 +731,9 @@ { aux -= RND_MM_TO_COORD(0.6); if (dir == PCB_MESH_HORIZONTAL) - pcb_text_new(mesh->ui_layer_xy, pcb_font_old(PCB, 0, 0), aux, 0, 90, 75, 0, label, pcb_no_flags()); + pcb_text_new(mesh->ui_layer_xy, pcb_font(PCB, 0, 0), aux, 0, 90, 75, 0, label, pcb_no_flags()); else - pcb_text_new(mesh->ui_layer_xy, pcb_font_old(PCB, 0, 0), 0, aux, 0, 75, 0, label, pcb_no_flags()); + pcb_text_new(mesh->ui_layer_xy, pcb_font(PCB, 0, 0), 0, aux, 0, 75, 0, label, pcb_no_flags()); } @@ -787,7 +787,7 @@ if (grp->ltype & PCB_LYT_COPPER) { y2 = y + mesh->def_copper_thick * mag / 2; pcb_line_new(mesh->ui_layer_z, xr, y2, xr+RND_MM_TO_COORD(2), y2, cpen, 0, pcb_no_flags()); - pcb_text_new(mesh->ui_layer_z, pcb_font_old(PCB, 0, 0), xr+RND_MM_TO_COORD(3), y2 - RND_MM_TO_COORD(1), 0, 100, 0, grp->name, pcb_no_flags()); + pcb_text_new(mesh->ui_layer_z, pcb_font(PCB, 0, 0), xr+RND_MM_TO_COORD(3), y2 - RND_MM_TO_COORD(1), 0, 100, 0, grp->name, pcb_no_flags()); y += mesh->def_copper_thick * mag; } else if (grp->ltype & PCB_LYT_SUBSTRATE) { Index: trunk/src_plugins/exto_std/dimension.c =================================================================== --- trunk/src_plugins/exto_std/dimension.c (revision 36693) +++ trunk/src_plugins/exto_std/dimension.c (revision 36694) @@ -216,7 +216,7 @@ /* text */ if (rnd_safe_snprintf(ttmp, sizeof(ttmp), RND_SAFEPRINT_COORD_ONLY | 1, dim->fmt, (rnd_coord_t)dim->len) < 0) strcpy(ttmp, ""); - t = pcb_text_new(ly, pcb_font_old(PCB, 0, 0), 0, 0, 0, 100, 0, ttmp, pcb_flag_make(0)); + t = pcb_text_new(ly, pcb_font(PCB, 0, 0), 0, 0, 0, 100, 0, ttmp, pcb_flag_make(0)); tx = t->BoundingBox.X2 - t->BoundingBox.X1; ty = t->BoundingBox.Y2 - t->BoundingBox.Y1; Index: trunk/src_plugins/fontmode/fontmode.c =================================================================== --- trunk/src_plugins/fontmode/fontmode.c (revision 36693) +++ trunk/src_plugins/fontmode/fontmode.c (revision 36694) @@ -100,10 +100,10 @@ if ((s > 32) && (s < 127)) { sprintf(txt, "%c", s); - pcb_text_new(lsilk, pcb_font_old(pcb, 0, 0), ox+CELL_SIZE-CELL_SIZE/3, oy+CELL_SIZE-CELL_SIZE/3, 0, 50, 0, txt, pcb_no_flags()); + pcb_text_new(lsilk, pcb_font(pcb, 0, 0), ox+CELL_SIZE-CELL_SIZE/3, oy+CELL_SIZE-CELL_SIZE/3, 0, 50, 0, txt, pcb_no_flags()); } sprintf(txt, "%d", s); - pcb_text_new(lsilk, pcb_font_old(pcb, 0, 0), ox+CELL_SIZE/20, oy+CELL_SIZE-CELL_SIZE/3, 0, 50, 0, txt, pcb_no_flags()); + pcb_text_new(lsilk, pcb_font(pcb, 0, 0), ox+CELL_SIZE/20, oy+CELL_SIZE-CELL_SIZE/3, 0, 50, 0, txt, pcb_no_flags()); for(n = 0, a = g->atoms.array; n < g->atoms.used; n++, a++) { pcb_poly_t *poly, *newpoly; Index: trunk/src_plugins/io_altium/pcbdoc.c =================================================================== --- trunk/src_plugins/io_altium/pcbdoc.c (revision 36693) +++ trunk/src_plugins/io_altium/pcbdoc.c (revision 36694) @@ -1425,7 +1425,7 @@ if (text != NULL) { assert(text->val_type == ALTIUM_FT_STR); - t = pcb_text_new_by_bbox(ly, pcb_font_old(rctx->pcb, 1, 1), + t = pcb_text_new_by_bbox(ly, pcb_font(rctx->pcb, 1, 1), x1, y1, x2-x1, y2-y1, mir ? x2-x1 : 0, 0, 1.0, (mir ? PCB_TXT_MIRROR_X : 0), rot, w, Index: trunk/src_plugins/io_autotrax/read.c =================================================================== --- trunk/src_plugins/io_autotrax/read.c (revision 36693) +++ trunk/src_plugins/io_autotrax/read.c (revision 36694) @@ -218,7 +218,7 @@ else Flags = pcb_flag_make(0); /* Text rotation is limited to 90*direction by the file format */ - if (pcb_text_new(ly, pcb_font_old(st->pcb, 0, 1), X, Y, 90.0*direction, scaling, 0, t, Flags) != 0) + if (pcb_text_new(ly, pcb_font(st->pcb, 0, 1), X, Y, 90.0*direction, scaling, 0, t, Flags) != 0) return 1; return -1; } Index: trunk/src_plugins/io_bxl/read.c =================================================================== --- trunk/src_plugins/io_bxl/read.c (revision 36693) +++ trunk/src_plugins/io_bxl/read.c (revision 36694) @@ -483,7 +483,7 @@ } mirror = ctx->state.flipped ? PCB_TXT_MIRROR_X : 0; - pcb_text_new_by_bbox(ctx->state.layer, pcb_font_old(ctx->pcb, 0, 1), + pcb_text_new_by_bbox(ctx->state.layer, pcb_font(ctx->pcb, 0, 1), ctx->state.origin_x, ctx->state.origin_y, bbw, bbh, anchx, anchy, scxy, mirror, ctx->state.rot, thickness, ctx->state.text_str, Index: trunk/src_plugins/io_eagle/read.c =================================================================== --- trunk/src_plugins/io_eagle/read.c (revision 36693) +++ trunk/src_plugins/io_eagle/read.c (revision 36694) @@ -718,7 +718,7 @@ default: anchy = rnd_round((double)-basel/2.0); } - pcb_text_new_by_bbox(ly, pcb_font_old(st->pcb, 0, 1), X, Y, bbw, bbh, anchx, anchy, 1, mirror, rotdeg, 0, text_val, text_flags); + pcb_text_new_by_bbox(ly, pcb_font(st->pcb, 0, 1), X, Y, bbw, bbh, anchx, anchy, 1, mirror, rotdeg, 0, text_val, text_flags); return 0; } Index: trunk/src_plugins/io_kicad/read.c =================================================================== --- trunk/src_plugins/io_kicad/read.c (revision 36693) +++ trunk/src_plugins/io_kicad/read.c (revision 36694) @@ -930,7 +930,7 @@ X += st->primitive_dx; Y += st->primitive_dy; - pcb_text_new_by_bbox(ly, pcb_font_old(PCB_FOR_FP, 0, 1), X, Y, bbw, bbh, + pcb_text_new_by_bbox(ly, pcb_font(PCB_FOR_FP, 0, 1), X, Y, bbw, bbh, xanch, yanch, sx/sy, mirrored ? PCB_TXT_MIRROR_X : 0, rotdeg, thickness, text, flg); Index: trunk/src_plugins/io_mentor_cell/read.c =================================================================== --- trunk/src_plugins/io_mentor_cell/read.c (revision 36693) +++ trunk/src_plugins/io_mentor_cell/read.c (revision 36694) @@ -635,7 +635,7 @@ if (mirrored != 0) rot = -rot; - pcb_text_new_by_bbox(ly, pcb_font_old(ctx->pcb, 0, 0), tx, ty, width, height, anchx, anchy, 1, mirrored, rot, thickness, nt->argv[1], pcb_flag_make(flg)); + pcb_text_new_by_bbox(ly, pcb_font(ctx->pcb, 0, 0), tx, ty, width, height, anchx, anchy, 1, mirrored, rot, thickness, nt->argv[1], pcb_flag_make(flg)); } static void parse_dgw_via(hkp_ctx_t *ctx, const hkp_netclass_t *nc, node_t *nv) Index: trunk/src_plugins/io_pads/delay_create.c =================================================================== --- trunk/src_plugins/io_pads/delay_create.c (revision 36693) +++ trunk/src_plugins/io_pads/delay_create.c (revision 36694) @@ -609,11 +609,11 @@ } break; case PCB_OBJ_TEXT: - r = (pcb_any_obj_t *)pcb_text_new(ly, pcb_font_old(pcb, 0, 1), ox+CRDX(t->X), oy+CRDY(t->Y), t->rot, t->Scale, t->thickness, t->TextString, pcb_flag_make(PCB_FLAG_CLEARLINE | t->Flags.f)); + r = (pcb_any_obj_t *)pcb_text_new(ly, pcb_font(pcb, 0, 1), ox+CRDX(t->X), oy+CRDY(t->Y), t->rot, t->Scale, t->thickness, t->TextString, pcb_flag_make(PCB_FLAG_CLEARLINE | t->Flags.f)); free(t->TextString); break; case PCB_OBJ_DLCR_TEXT_BY_BBOX: - r = (pcb_any_obj_t *)pcb_text_new_by_bbox(ly, (pcb_font_t *)tb->font, ox+CRDX(tb->x), oy+CRDY(tb->y), + r = (pcb_any_obj_t *)pcb_text_new_by_bbox(ly, tb->font, ox+CRDX(tb->x), oy+CRDY(tb->y), tb->bbw, tb->bbh, tb->anchx, tb->anchy, tb->scxy, tb->mirror, tb->rot, tb->thickness, tb->str, pcb_flag_make(PCB_FLAG_CLEARLINE | tb->flags)); free(tb->str); Index: trunk/src_plugins/io_pcb/parse_y.c =================================================================== --- trunk/src_plugins/io_pcb/parse_y.c (revision 36693) +++ trunk/src_plugins/io_pcb/parse_y.c (revision 36694) @@ -2383,7 +2383,7 @@ #line 727 "parse_y.y" /* yacc.c:1652 */ { /* use a default scale of 100% */ - pcb_text_new(Layer,yyFont,OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), (yyvsp[-3].number) * 90.0, 100, 0, (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); + pcb_text_new(Layer,&yyFont->rnd_font,OU ((yyvsp[-5].measure)), OU ((yyvsp[-4].measure)), (yyvsp[-3].number) * 90.0, 100, 0, (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } #line 2390 "parse_y.c" /* yacc.c:1652 */ @@ -2397,11 +2397,11 @@ pcb_layer_t *lay = &yyData->Layer[yyData->LayerN + (((yyvsp[-1].integer) & PCB_FLAG_ONSOLDER) ? PCB_SOLDER_SIDE : PCB_COMPONENT_SIDE) - 2]; - pcb_text_new(lay ,yyFont, OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), (yyvsp[-4].number) * 90.0, (yyvsp[-3].number), 0, (yyvsp[-2].string), + pcb_text_new(lay ,&yyFont->rnd_font, OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), (yyvsp[-4].number) * 90.0, (yyvsp[-3].number), 0, (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); } else - pcb_text_new(Layer, yyFont, OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), (yyvsp[-4].number) * 90.0, (yyvsp[-3].number), 0, (yyvsp[-2].string), + pcb_text_new(Layer, &yyFont->rnd_font, OU ((yyvsp[-6].measure)), OU ((yyvsp[-5].measure)), (yyvsp[-4].number) * 90.0, (yyvsp[-3].number), 0, (yyvsp[-2].string), pcb_flag_old((yyvsp[-1].integer))); free ((yyvsp[-2].string)); } @@ -2427,10 +2427,10 @@ pcb_layer_t *lay = &yyData->Layer[yyData->LayerN + (((yyvsp[-1].flagtype).f & PCB_FLAG_ONSOLDER) ? PCB_SOLDER_SIDE : PCB_COMPONENT_SIDE) - 2]; - pcb_text_new(lay, yyFont, NU ((yyvsp[-6].measure)), NU ((yyvsp[-5].measure)), (yyvsp[-4].number) * 90.0, (yyvsp[-3].number), 0, (yyvsp[-2].string), (yyvsp[-1].flagtype)); + pcb_text_new(lay, &yyFont->rnd_font, NU ((yyvsp[-6].measure)), NU ((yyvsp[-5].measure)), (yyvsp[-4].number) * 90.0, (yyvsp[-3].number), 0, (yyvsp[-2].string), (yyvsp[-1].flagtype)); } else - pcb_text_new(Layer, yyFont, NU ((yyvsp[-6].measure)), NU ((yyvsp[-5].measure)), (yyvsp[-4].number) * 90.0, (yyvsp[-3].number), 0, (yyvsp[-2].string), (yyvsp[-1].flagtype)); + pcb_text_new(Layer, &yyFont->rnd_font, NU ((yyvsp[-6].measure)), NU ((yyvsp[-5].measure)), (yyvsp[-4].number) * 90.0, (yyvsp[-3].number), 0, (yyvsp[-2].string), (yyvsp[-1].flagtype)); free ((yyvsp[-2].string)); } } Index: trunk/src_plugins/io_pcb/parse_y.y =================================================================== --- trunk/src_plugins/io_pcb/parse_y.y (revision 36693) +++ trunk/src_plugins/io_pcb/parse_y.y (revision 36694) @@ -726,7 +726,7 @@ : T_TEXT '(' measure measure number STRING INTEGER ')' { /* use a default scale of 100% */ - pcb_text_new(Layer,yyFont,OU ($3), OU ($4), $5 * 90.0, 100, 0, $6, pcb_flag_old($7)); + pcb_text_new(Layer,&yyFont->rnd_font,OU ($3), OU ($4), $5 * 90.0, 100, 0, $6, pcb_flag_old($7)); free ($6); } ; @@ -740,11 +740,11 @@ pcb_layer_t *lay = &yyData->Layer[yyData->LayerN + (($8 & PCB_FLAG_ONSOLDER) ? PCB_SOLDER_SIDE : PCB_COMPONENT_SIDE) - 2]; - pcb_text_new(lay ,yyFont, OU ($3), OU ($4), $5 * 90.0, $6, 0, $7, + pcb_text_new(lay ,&yyFont->rnd_font, OU ($3), OU ($4), $5 * 90.0, $6, 0, $7, pcb_flag_old($8)); } else - pcb_text_new(Layer, yyFont, OU ($3), OU ($4), $5 * 90.0, $6, 0, $7, + pcb_text_new(Layer, &yyFont->rnd_font, OU ($3), OU ($4), $5 * 90.0, $6, 0, $7, pcb_flag_old($8)); free ($7); } @@ -769,10 +769,10 @@ pcb_layer_t *lay = &yyData->Layer[yyData->LayerN + (($8.f & PCB_FLAG_ONSOLDER) ? PCB_SOLDER_SIDE : PCB_COMPONENT_SIDE) - 2]; - pcb_text_new(lay, yyFont, NU ($3), NU ($4), $5 * 90.0, $6, 0, $7, $8); + pcb_text_new(lay, &yyFont->rnd_font, NU ($3), NU ($4), $5 * 90.0, $6, 0, $7, $8); } else - pcb_text_new(Layer, yyFont, NU ($3), NU ($4), $5 * 90.0, $6, 0, $7, $8); + pcb_text_new(Layer, &yyFont->rnd_font, NU ($3), NU ($4), $5 * 90.0, $6, 0, $7, $8); free ($7); } } Index: trunk/src_plugins/io_tedax/tlayer.c =================================================================== --- trunk/src_plugins/io_tedax/tlayer.c (revision 36693) +++ trunk/src_plugins/io_tedax/tlayer.c (revision 36694) @@ -402,7 +402,7 @@ } if (rot < 0) rot += 360; - text = pcb_text_new(ly, pcb_font_old(PCB, 0, 1), bx1, by1, rot, 100, 0, argv[8], pcb_flag_make(PCB_FLAG_CLEARLINE)); + text = pcb_text_new(ly, pcb_font(PCB, 0, 1), bx1, by1, rot, 100, 0, argv[8], pcb_flag_make(PCB_FLAG_CLEARLINE)); rw = bx2-bx1; rh = by2-by1; pcb_text_pre(text); for(n = 0; n < 8; n++) { Index: trunk/src_plugins/lib_compat_help/subc_help.c =================================================================== --- trunk/src_plugins/lib_compat_help/subc_help.c (revision 36693) +++ trunk/src_plugins/lib_compat_help/subc_help.c (revision 36694) @@ -31,7 +31,7 @@ pcb_layer_type_t side = bottom ? PCB_LYT_BOTTOM : PCB_LYT_TOP; pcb_layer_t *ly = pcb_subc_get_layer(sc, side | PCB_LYT_SILK, 0, rnd_true, "top-silk", rnd_false); if (ly != NULL) - return pcb_text_new(ly, pcb_font_old(PCB, 0, 0), x, y, 90.0 * direction, scale, 0, pattern, pcb_flag_make(PCB_FLAG_DYNTEXT | PCB_FLAG_FLOATER | (bottom ? PCB_FLAG_ONSOLDER : 0))); + return pcb_text_new(ly, pcb_font(PCB, 0, 0), x, y, 90.0 * direction, scale, 0, pattern, pcb_flag_make(PCB_FLAG_DYNTEXT | PCB_FLAG_FLOATER | (bottom ? PCB_FLAG_ONSOLDER : 0))); return 0; } Index: trunk/src_plugins/report/report.c =================================================================== --- trunk/src_plugins/report/report.c (revision 36693) +++ trunk/src_plugins/report/report.c (revision 36694) @@ -832,7 +832,7 @@ rnd_snprintf(tmp, sizeof(tmp), "%m+len=%.02$$mS via=%d%s", rnd_conf.editor.grid_unit->allow, nl->len, nl->num_vias, nl->has_junction ? " BAD" : ""); tx = atx+dx*th*50; ty = aty+dy*th*50; - t = pcb_text_new(ly, pcb_font_old(pcb, 0, 1), tx, ty, 0, 25, th, tmp, pcb_no_flags()); + t = pcb_text_new(ly, pcb_font(pcb, 0, 1), tx, ty, 0, 25, th, tmp, pcb_no_flags()); if (nl->has_junction) t->override_color = rnd_clrdup(rnd_color_red); Index: trunk/src_plugins/tool_std/tool_text.c =================================================================== --- trunk/src_plugins/tool_std/tool_text.c (revision 36693) +++ trunk/src_plugins/tool_std/tool_text.c (revision 36694) @@ -57,7 +57,7 @@ if (pcb_layer_flags(pcb, PCB_CURRLID(pcb)) & PCB_LYT_BOTTOM) flag |= PCB_FLAG_ONSOLDER; - if ((text = pcb_text_new(pcb_loose_subc_layer(pcb, PCB_CURRLAYER(pcb), rnd_true), pcb_font_old(pcb, conf_core.design.text_font_id, 1), hl->tool_x, + if ((text = pcb_text_new(pcb_loose_subc_layer(pcb, PCB_CURRLAYER(pcb), rnd_true), pcb_font(pcb, conf_core.design.text_font_id, 1), hl->tool_x, hl->tool_y, 0, conf_core.design.text_scale, conf_core.design.text_thickness, string, pcb_flag_make(flag))) != NULL) { pcb_obj_add_attribs((pcb_any_obj_t *)text, pcb->pen_attr, NULL); pcb_undo_add_obj_to_create(PCB_OBJ_TEXT, PCB_CURRLAYER(pcb), text, text);