return (++s->fillstyle.n);
}
+int swf_ShapeAddFillStyle2(SHAPE * s,FILLSTYLE*fs)
+{
+ return swf_ShapeAddFillStyle(s, fs->type, &fs->m, &fs->color, fs->id_bitmap, &fs->gradient);
+}
int swf_ShapeAddSolidFillStyle(SHAPE * s,RGBA * color)
{ return swf_ShapeAddFillStyle(s,FILL_SOLID,NULL,color,0,0);
if(b >= 18) {
if(b >= 18 + 4) {
/* do not split into more than 16 segments. If the line is *that* long, something's broken */
- fprintf(stderr, "Warning: Line to %.2f,%.2f is too long", (double)x,(double)y);
+ fprintf(stderr, "Warning: Line to %.2f,%.2f is too long\n", (double)x,(double)y);
return -1;
} else {
/* split line */
rfx_free(s->bbox);
}
+SHAPE2* swf_Shape2Clone(SHAPE2 * s)
+{
+ SHAPELINE*line = s->lines;
+ SHAPELINE*prev = 0;
+ SHAPE2*s2 = rfx_alloc(sizeof(SHAPE2));
+ memcpy(s2,s,sizeof(SHAPE2));
+ s2->linestyles = rfx_alloc(sizeof(LINESTYLE)*s->numlinestyles);
+ memcpy(s2->linestyles, s->linestyles, sizeof(LINESTYLE)*s->numlinestyles);
+ s2->fillstyles = rfx_alloc(sizeof(FILLSTYLE)*s->numfillstyles);
+ memcpy(s2->fillstyles, s->fillstyles, sizeof(FILLSTYLE)*s->numfillstyles);
+
+ while(line) {
+ SHAPELINE*line2 = rfx_alloc(sizeof(SHAPELINE));
+ memcpy(line2, line, sizeof(SHAPELINE));
+ line2->next = 0;
+ if(prev)
+ prev->next = line2;
+ else
+ s2->lines = line2;
+ prev = line2;
+ line = line->next;
+ }
+ if(s->bbox) {
+ s2->bbox = rfx_alloc(sizeof(SRECT));
+ memcpy(s2->bbox, s->bbox, sizeof(SRECT));
+ }
+ return s2;
+}
+
SHAPE2* swf_ShapeToShape2(SHAPE*shape) {
SHAPE2*shape2 = (SHAPE2*)rfx_calloc(sizeof(SHAPE2));
else {
fprintf(stderr, "parseDefineShape must be called with a shape tag");
}
+ swf_SetTagPos(tag, 0);
id = swf_GetU16(tag); //id
memset(shape, 0, sizeof(SHAPE2));