return box;
}
+gfxbbox_t gfxbbox_expand_to_bbox(gfxbbox_t box, gfxbbox_t box2)
+{
+ box = gfxbbox_expand_to_point(box, box2.xmin, box2.ymin);
+ box = gfxbbox_expand_to_point(box, box2.xmax, box2.ymax);
+ return box;
+}
+
void gfxbbox_intersect(gfxbbox_t*box1, gfxbbox_t*box2)
{
if(box2->xmin > box1->xmin)
gfxline_t*prev=0;
while(line) {
gfxline_t*next = line->next;
- if(line->type == gfx_moveTo) {
+ if(line->type == gfx_moveTo && (line->next && line->next->type != gfx_moveTo)) {
gfxpoint_t xy = {line->x, line->y};
dict_put(ff, &xy, line);
prev = line;
gfxpoint_t xy = {line->x, line->y};
dict_put(rev, &xy, prev);
line->next = 0;
+ prev=0;
}
}
line = next;
return b;
}
+void gfxgradient_destroy(gfxgradient_t*gradient)
+{
+ while(gradient) {
+ gfxgradient_t*next = gradient->next;
+ free(gradient);
+ gradient = next;
+ }
+}
+
gfxparams_t* gfxparams_new()
{
return (gfxparams_t*)rfx_calloc(sizeof(gfxparams_t));
free(p);
p = next;
}
+ free(params);
}