git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed bug in ttf generator.
[swftools.git]
/
lib
/
gfxtools.c
diff --git
a/lib/gfxtools.c
b/lib/gfxtools.c
index
36c9508
..
35d4eff
100644
(file)
--- a/
lib/gfxtools.c
+++ b/
lib/gfxtools.c
@@
-234,7
+234,7
@@
void gfxtool_draw_dashed_line(gfxdrawer_t*d, gfxline_t*line, float*r, float phas
return;
}
if(r[0]<0 || phase<0) {
return;
}
if(r[0]<0 || phase<0) {
- fprintf(stderr, "gfxtool: invalid (negative) dashes: %f, phase=%f", r[0], phase);
+ fprintf(stderr, "gfxtool: invalid (negative) dashes: %f, phase=%f\n", r[0], phase);
return;
}
return;
}
@@
-656,6
+656,13
@@
gfxbbox_t gfxbbox_expand_to_point(gfxbbox_t box, gfxcoord_t x, gfxcoord_t y)
return box;
}
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)
void gfxbbox_intersect(gfxbbox_t*box1, gfxbbox_t*box2)
{
if(box2->xmin > box1->xmin)
@@
-728,8
+735,8
@@
void gfxline_transform(gfxline_t*line, gfxmatrix_t*matrix)
void gfxmatrix_dump(gfxmatrix_t*m, FILE*fi, char*prefix)
{
void gfxmatrix_dump(gfxmatrix_t*m, FILE*fi, char*prefix)
{
- fprintf(fi, "%f %f | %f\n", m->m00, m->m10, m->tx);
- fprintf(fi, "%f %f | %f\n", m->m01, m->m11, m->ty);
+ fprintf(fi, "%s%f %f | %f\n", prefix, m->m00, m->m10, m->tx);
+ fprintf(fi, "%s%f %f | %f\n", prefix, m->m01, m->m11, m->ty);
}
void gfxmatrix_transform(gfxmatrix_t*m, double* v, double*dest)
}
void gfxmatrix_transform(gfxmatrix_t*m, double* v, double*dest)
@@
-1038,7
+1045,7
@@
gfxline_t* gfxline_restitch(gfxline_t*line)
gfxline_t*prev=0;
while(line) {
gfxline_t*next = line->next;
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(ff, &xy, line);
prev = line;
@@
-1137,6
+1144,15
@@
gfxline_t* gfxline_reverse(gfxline_t*line)
return b;
}
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));
gfxparams_t* gfxparams_new()
{
return (gfxparams_t*)rfx_calloc(sizeof(gfxparams_t));
@@
-1178,5
+1194,6
@@
void gfxparams_free(gfxparams_t*params)
free(p);
p = next;
}
free(p);
p = next;
}
+ free(params);
}
}