git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
implemented type3 fonts in pdf2pdf, added fontmatrix tests to testsuite
[swftools.git]
/
lib
/
gfxpoly
/
wind.c
diff --git
a/lib/gfxpoly/wind.c
b/lib/gfxpoly/wind.c
index
fa6d724
..
db92905
100644
(file)
--- a/
lib/gfxpoly/wind.c
+++ b/
lib/gfxpoly/wind.c
@@
-1,4
+1,3
@@
-#include <assert.h>
#include "wind.h"
fillstyle_t fillstyle_default;
#include "wind.h"
fillstyle_t fillstyle_default;
@@
-6,18
+5,15
@@
fillstyle_t fillstyle_default;
windstate_t windstate_nonfilled = {
is_filled: 0,
wind_nr: 0,
windstate_t windstate_nonfilled = {
is_filled: 0,
wind_nr: 0,
-
- /* TODO: move num_polygons into windstate_t.internal */
- num_polygons: 1,
};
// -------------------- even/odd ----------------------
};
// -------------------- even/odd ----------------------
-windstate_t evenodd_start(int num_polygons)
+windstate_t evenodd_start(windcontext_t*context)
{
return windstate_nonfilled;
}
{
return windstate_nonfilled;
}
-windstate_t evenodd_add(windstate_t left, fillstyle_t*edge, segment_dir_t dir, int master)
+windstate_t evenodd_add(windcontext_t*context, windstate_t left, fillstyle_t*edge, segment_dir_t dir, int master)
{
left.is_filled ^= 1;
return left;
{
left.is_filled ^= 1;
return left;
@@
-38,12
+34,12
@@
windrule_t windrule_evenodd = {
// -------------------- circular ----------------------
// -------------------- circular ----------------------
-windstate_t circular_start(int num_polygons)
+windstate_t circular_start(windcontext_t*context)
{
return windstate_nonfilled;
}
{
return windstate_nonfilled;
}
-windstate_t circular_add(windstate_t left, fillstyle_t*edge, segment_dir_t dir, int master)
+windstate_t circular_add(windcontext_t*context, windstate_t left, fillstyle_t*edge, segment_dir_t dir, int master)
{
/* which one is + and which one - doesn't actually make any difference */
if(dir == DIR_DOWN)
{
/* which one is + and which one - doesn't actually make any difference */
if(dir == DIR_DOWN)
@@
-71,20
+67,17
@@
windrule_t windrule_circular = {
// -------------------- intersect ----------------------
// -------------------- intersect ----------------------
-windstate_t intersect_start(int num_polygons)
+windstate_t intersect_start(windcontext_t*context)
{
{
- windstate_t w;
- w.num_polygons = num_polygons;
- return w;
+ return windstate_nonfilled;
}
}
-windstate_t intersect_add(windstate_t left, fillstyle_t*edge, segment_dir_t dir, int master)
+windstate_t intersect_add(windcontext_t*context, windstate_t left, fillstyle_t*edge, segment_dir_t dir, int master)
{
{
- assert(master < left.num_polygons);
+ assert(master < context->num_polygons);
left.wind_nr ^= 1<<master;
left.wind_nr ^= 1<<master;
- if(left.wind_nr == (1<<left.num_polygons)-1)
- left.is_filled = 1;
+ left.is_filled = (left.wind_nr == (1<<context->num_polygons)-1);
return left;
}
return left;
}
@@
-104,17
+97,16
@@
windrule_t windrule_intersect = {
// -------------------- union ----------------------
// -------------------- union ----------------------
-windstate_t union_start(int num_polygons)
+windstate_t union_start(windcontext_t*context)
{
return windstate_nonfilled;
}
{
return windstate_nonfilled;
}
-windstate_t union_add(windstate_t left, fillstyle_t*edge, segment_dir_t dir, int master)
+windstate_t union_add(windcontext_t*context, windstate_t left, fillstyle_t*edge, segment_dir_t dir, int master)
{
assert(master<sizeof(left.wind_nr)*8); //up to 32/64 polygons max
left.wind_nr ^= 1<<master;
{
assert(master<sizeof(left.wind_nr)*8); //up to 32/64 polygons max
left.wind_nr ^= 1<<master;
- if(left.wind_nr!=0)
- left.is_filled = 1;
+ left.is_filled = (left.wind_nr!=0);
return left;
}
return left;
}