git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
more bugfixes in stroke code
[swftools.git]
/
lib
/
gfxtools.c
diff --git
a/lib/gfxtools.c
b/lib/gfxtools.c
index
f754379
..
a206e57
100644
(file)
--- a/
lib/gfxtools.c
+++ b/
lib/gfxtools.c
@@
-33,6
+33,7
@@
typedef struct _linedraw_internal
{
gfxline_t*start;
gfxline_t*next;
{
gfxline_t*start;
gfxline_t*next;
+ gfxcoord_t x0,y0;
} linedraw_internal_t;
static void linedraw_moveTo(gfxdrawer_t*d, gfxcoord_t x, gfxcoord_t y)
} linedraw_internal_t;
static void linedraw_moveTo(gfxdrawer_t*d, gfxcoord_t x, gfxcoord_t y)
@@
-46,6
+47,8
@@
static void linedraw_moveTo(gfxdrawer_t*d, gfxcoord_t x, gfxcoord_t y)
return;
}
return;
}
+ i->x0 = x;
+ i->y0 = y;
l->sx = l->sy = 0;
d->x = l->x = x;
d->y = l->y = y;
l->sx = l->sy = 0;
d->x = l->x = x;
d->y = l->y = y;
@@
-102,6
+105,11
@@
static void linedraw_splineTo(gfxdrawer_t*d, gfxcoord_t sx, gfxcoord_t sy, gfxco
if(!i->start)
i->start = l;
}
if(!i->start)
i->start = l;
}
+static void* linedraw_close(gfxdrawer_t*d)
+{
+ linedraw_internal_t*i = (linedraw_internal_t*)d->internal;
+ linedraw_lineTo(d, i->x0, i->y0);
+}
static void* linedraw_result(gfxdrawer_t*d)
{
linedraw_internal_t*i = (linedraw_internal_t*)d->internal;
static void* linedraw_result(gfxdrawer_t*d)
{
linedraw_internal_t*i = (linedraw_internal_t*)d->internal;
@@
-120,6
+128,7
@@
void gfxdrawer_target_gfxline(gfxdrawer_t*d)
d->moveTo = linedraw_moveTo;
d->lineTo = linedraw_lineTo;
d->splineTo = linedraw_splineTo;
d->moveTo = linedraw_moveTo;
d->lineTo = linedraw_lineTo;
d->splineTo = linedraw_splineTo;
+ d->close = linedraw_close;
d->result = linedraw_result;
}
d->result = linedraw_result;
}