X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fswfc.c;h=3f2df3531d2f0bab5817f35722d077a95955c104;hb=b3d477d43dd5a9f4da23207ca9982fb7a6b3d938;hp=db03652e5f3001fbeaae66143cd5b93826b6059e;hpb=35d9f26642d51fb682fd44410068c4a5d50f3d04;p=swftools.git diff --git a/src/swfc.c b/src/swfc.c index db03652..3f2df35 100644 --- a/src/swfc.c +++ b/src/swfc.c @@ -320,7 +320,8 @@ static void parameters_clear(parameters_t*p) { p->x = 0; p->y = 0; p->scalex = 1.0; p->scaley = 1.0; - p->pin.x = 1; p->pin.y = 0; + p->pin.x = 0; //1?? + p->pin.y = 0; p->pivot.x = 0; p->pivot.y = 0; p->rotate = 0; p->shear = 0; @@ -347,7 +348,7 @@ static void makeMatrix(MATRIX*m, parameters_t*p) m->sy = (int)(sy*65536+0.5); m->tx = m->ty = 0; - + h = swf_TurnPoint(p->pin, m); m->tx = p->x - h.x; m->ty = p->y - h.y; @@ -847,7 +848,7 @@ void s_circle(char*name, int r, RGBA color, int linewidth, char*texture) incrementid(); } -void s_textshape(char*name, char*fontname, char*_text) +void s_textshape(char*name, char*fontname, float size, char*_text) { int g; U8*text = (U8*)_text; @@ -873,7 +874,7 @@ void s_textshape(char*name, char*fontname, char*_text) { drawer_t draw; swf_Shape11DrawerInit(&draw, 0); - swf_DrawText(&draw, font, _text); + swf_DrawText(&draw, font, (int)(size*100), _text); draw.finish(&draw); outline->shape = swf_ShapeDrawerToShape(&draw); outline->bbox = swf_ShapeDrawerGetBBox(&draw); @@ -1335,6 +1336,7 @@ void s_endClip() swf_SetTagPos(stack[stackpos].tag, 0); swf_GetPlaceObject(stack[stackpos].tag, &p); p.clipdepth = currentdepth; + p.name = 0; swf_ClearTag(stack[stackpos].tag); swf_SetPlaceObject(stack[stackpos].tag, &p); currentdepth++; @@ -2217,8 +2219,9 @@ static int c_textshape(map_t*args) char*name = lu(args, "name"); char*text = lu(args, "text"); char*font = lu(args, "font"); + float size = parsePercent(lu(args, "size")); - s_textshape(name, font, text); + s_textshape(name, font, size, text); return 0; } @@ -2494,7 +2497,7 @@ static struct { {"point", c_point, "name x=0 y=0"}, {"gradient", c_gradient, "name @radial=0"}, {"outline", c_outline, "name format=simple"}, - {"textshape", c_textshape, "name text font"}, + {"textshape", c_textshape, "name font size=100% text"}, // character generators {"box", c_primitive, "name width height color=white line=1 @fill=none"}, @@ -2509,7 +2512,7 @@ static struct { {"show", c_show, "name x=0 y=0 red=+0 green=+0 blue=+0 alpha=+0 luminance= scale= scalex= scaley= pivot= pin= shear= rotate= ratio= above= below= as="}, {"on_press", c_on_press, "position=inside"}, {"on_release", c_on_release, "position=anywhere"}, - {"on_move_in", c_on_move_out, "state=not_pressed"}, + {"on_move_in", c_on_move_in, "state=not_pressed"}, {"on_move_out", c_on_move_out, "state=not_pressed"}, {"on_key", c_on_key, "key=any"},