important for texture and gradient fill */
for(t=0;t<s2->numfillstyles;t++) {
MATRIX nm;
- swf_MatrixJoin(&nm, &s2->fillstyles[t].m, &mat); //TODO: is this the right order?
+ swf_MatrixJoin(&nm, &mat, &s2->fillstyles[t].m);
/*nm.sx *= i->multiply;
nm.sy *= i->multiply;
nm.r0 *= i->multiply;
} while(++x<x2);
}
+
static void fill_solid(RGBA*line, int*z, int y, int x1, int x2, RGBA col, U32 depth)
{
int x = x1;
endx = 0;
if(clipdepth) {
- /* for clipping, the inverse is filled */
+ /* for clipping, the inverse is filled
+ TODO: lastx!=startx only at the start of the loop,
+ so this might be moved up
+ */
fill_clip(line, zline, y, lastx, startx, clipdepth);
}
change_state(y, &fillstate, p);
-
+
fill(dest, line, zline, y, startx, endx, &fillstate, clipdepth);
/* if(y == 0 && startx == 232 && endx == 418) {
printf("ymin=%d ymax=%d\n", i->ymin, i->ymax);
break;
}
if(clipdepth) {
+ /* TODO: is lastx *ever* != i->width2 here? */
fill_clip(line, zline, y, lastx, i->width2, clipdepth);
}
free_layers(&fillstate);
swf_GetPlaceObject(tag, &p);
/* TODO: add move and deletion */
placements[numplacements++] = p;
- swf_PlaceObjectFree(&p); //dirty! but it only removes items we don't need
+ swf_PlaceObjectFree(&p); //dirty! but it only frees fields we don't use
}
tag = tag->next;
}