diff options
Diffstat (limited to 'gs/psi/fapiufst.c')
-rw-r--r-- | gs/psi/fapiufst.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/gs/psi/fapiufst.c b/gs/psi/fapiufst.c index b10b69fda..a855a7872 100644 --- a/gs/psi/fapiufst.c +++ b/gs/psi/fapiufst.c @@ -919,6 +919,18 @@ static void release_glyphs(fapi_ufst_server *r, ufst_common_font_data *d) } } +static FAPI_retcode get_fontmatrix(FAPI_server *I, gs_matrix *m) +{ + gs_matrix *base_font_matrix = &I->initial_FontMatrix; + m->xx = I->initial_FontMatrix.xx; + m->xy = I->initial_FontMatrix.xy; + m->yx = I->initial_FontMatrix.yx; + m->yy = I->initial_FontMatrix.yy; + m->tx = I->initial_FontMatrix.tx; + m->ty = I->initial_FontMatrix.ty; + return 0; +} + static FAPI_retcode get_char_width(FAPI_server *server, FAPI_font *ff, FAPI_char_ref *c, FAPI_metrics *metrics) { fapi_ufst_server *r = If_to_I(server); UW16 buffer[2]; @@ -961,24 +973,23 @@ static int export_outline(fapi_ufst_server *r, PIFOUTLINE pol, FAPI_path *p) segment = (LPSB8)((LPSB8)(outchar->loop) + outchar->loop[i].segmt_offset); points = (PINTRVECTOR)((LPSB8)(outchar->loop) + outchar->loop[i].coord_offset); for(j=0; j<num_segmts; j++) { - int code; if(*segment == 0x00) { - if ((code = p->moveto(p, points->x, points->y)) != 0) - return code; + if ((p->gs_error = p->moveto(p, points->x, points->y)) != 0) + return p->gs_error; points++; } else if (*segment == 0x01) { - if ((code = p->lineto(p, points->x, points->y)) != 0) - return code; + if ((p->gs_error = p->lineto(p, points->x, points->y)) != 0) + return p->gs_error; points++; } else if (*segment == 0x02) { points+=2; return e_invalidfont; /* This must not happen */ } else if (*segment == 0x03) { - if ((code = p->curveto(p, points[0].x, points[0].y, + if ((p->gs_error = p->curveto(p, points[0].x, points[0].y, points[1].x, points[1].y, points[2].x, points[2].y)) < 0) - return code; + return p->gs_error; points+=3; } else return e_invalidfont; /* This must not happen */ @@ -1295,6 +1306,7 @@ static const FAPI_server If0 = { get_font_proportional_feature, can_retrieve_char_by_name, can_replace_metrics, + get_fontmatrix, get_char_width, get_char_raster_metrics, get_char_raster, |