summaryrefslogtreecommitdiff
path: root/fitz/dev_draw.c
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2010-04-25 00:09:00 +0200
committerTor Andersson <tor@ghostscript.com>2010-04-25 00:09:00 +0200
commitbc29aa90e5b0d1bf813f9eacb8bce53f5174bec6 (patch)
treeedd403655f13aa2e71f801f98ed0d89ae3534bea /fitz/dev_draw.c
parent01f6c576de71948cbc8adfe66524aeb43a2ce515 (diff)
downloadmupdf-bc29aa90e5b0d1bf813f9eacb8bce53f5174bec6.tar.xz
Move stroking state to a separate struct in preparation for stroked text rendering mode support.
Diffstat (limited to 'fitz/dev_draw.c')
-rw-r--r--fitz/dev_draw.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/fitz/dev_draw.c b/fitz/dev_draw.c
index 319617eb..4e53669c 100644
--- a/fitz/dev_draw.c
+++ b/fitz/dev_draw.c
@@ -105,7 +105,7 @@ blendmaskover(fz_pixmap *src, fz_pixmap *msk, fz_pixmap *dst)
}
static void
-fz_drawfillpath(void *user, fz_path *path, fz_matrix ctm,
+fz_drawfillpath(void *user, fz_path *path, int evenodd, fz_matrix ctm,
fz_colorspace *colorspace, float *color, float alpha)
{
fz_drawdevice *dev = user;
@@ -137,22 +137,22 @@ fz_drawfillpath(void *user, fz_path *path, fz_matrix ctm,
argb[1] = rgb[0] * 255;
argb[2] = rgb[1] * 255;
argb[3] = rgb[2] * 255;
- fz_scanconvert(dev->gel, dev->ael, path->evenodd, bbox, dev->dest, argb, 1);
+ fz_scanconvert(dev->gel, dev->ael, evenodd, bbox, dev->dest, argb, 1);
}
else
{
- fz_scanconvert(dev->gel, dev->ael, path->evenodd, bbox, dev->dest, nil, 1);
+ fz_scanconvert(dev->gel, dev->ael, evenodd, bbox, dev->dest, nil, 1);
}
}
static void
-fz_drawstrokepath(void *user, fz_path *path, fz_matrix ctm,
+fz_drawstrokepath(void *user, fz_path *path, fz_strokestate *stroke, fz_matrix ctm,
fz_colorspace *colorspace, float *color, float alpha)
{
fz_drawdevice *dev = user;
float expansion = fz_matrixexpansion(ctm);
float flatness = 0.3 / expansion;
- float linewidth = path->linewidth;
+ float linewidth = stroke->linewidth;
fz_bbox bbox;
fz_bbox clip;
@@ -165,10 +165,10 @@ fz_drawstrokepath(void *user, fz_path *path, fz_matrix ctm,
clip.y1 = dev->dest->y + dev->dest->h;
fz_resetgel(dev->gel, clip);
- if (path->dashlen > 0)
- fz_dashpath(dev->gel, path, ctm, flatness, linewidth);
+ if (stroke->dashlen > 0)
+ fz_dashpath(dev->gel, path, stroke, ctm, flatness, linewidth);
else
- fz_strokepath(dev->gel, path, ctm, flatness, linewidth);
+ fz_strokepath(dev->gel, path, stroke, ctm, flatness, linewidth);
fz_sortgel(dev->gel);
bbox = fz_boundgel(dev->gel);
@@ -194,7 +194,7 @@ fz_drawstrokepath(void *user, fz_path *path, fz_matrix ctm,
}
static void
-fz_drawclippath(void *user, fz_path *path, fz_matrix ctm)
+fz_drawclippath(void *user, fz_path *path, int evenodd, fz_matrix ctm)
{
fz_drawdevice *dev = user;
float expansion = fz_matrixexpansion(ctm);
@@ -227,7 +227,7 @@ fz_drawclippath(void *user, fz_path *path, fz_matrix ctm)
memset(dest->samples, 0, dest->w * dest->h * dest->n);
if (!fz_isemptyrect(bbox))
- fz_scanconvert(dev->gel, dev->ael, path->evenodd, bbox, mask, nil, 1);
+ fz_scanconvert(dev->gel, dev->ael, evenodd, bbox, mask, nil, 1);
dev->clipstack[dev->cliptop].mask = mask;
dev->clipstack[dev->cliptop].dest = dev->dest;
@@ -236,12 +236,12 @@ fz_drawclippath(void *user, fz_path *path, fz_matrix ctm)
}
static void
-fz_drawclipstrokepath(void *user, fz_path *path, fz_matrix ctm)
+fz_drawclipstrokepath(void *user, fz_path *path, fz_strokestate *stroke, fz_matrix ctm)
{
fz_drawdevice *dev = user;
float expansion = fz_matrixexpansion(ctm);
float flatness = 0.3 / expansion;
- float linewidth = path->linewidth;
+ float linewidth = stroke->linewidth;
fz_bbox clip, bbox;
fz_pixmap *mask, *dest;
@@ -260,10 +260,10 @@ fz_drawclipstrokepath(void *user, fz_path *path, fz_matrix ctm)
linewidth = 1.0 / expansion;
fz_resetgel(dev->gel, clip);
- if (path->dashlen > 0)
- fz_dashpath(dev->gel, path, ctm, flatness, linewidth);
+ if (stroke->dashlen > 0)
+ fz_dashpath(dev->gel, path, stroke, ctm, flatness, linewidth);
else
- fz_strokepath(dev->gel, path, ctm, flatness, linewidth);
+ fz_strokepath(dev->gel, path, stroke, ctm, flatness, linewidth);
fz_sortgel(dev->gel);
bbox = fz_boundgel(dev->gel);
@@ -276,7 +276,7 @@ fz_drawclipstrokepath(void *user, fz_path *path, fz_matrix ctm)
memset(dest->samples, 0, dest->w * dest->h * dest->n);
if (!fz_isemptyrect(bbox))
- fz_scanconvert(dev->gel, dev->ael, path->evenodd, bbox, mask, nil, 1);
+ fz_scanconvert(dev->gel, dev->ael, 0, bbox, mask, nil, 1);
dev->clipstack[dev->cliptop].mask = mask;
dev->clipstack[dev->cliptop].dest = dev->dest;
@@ -379,7 +379,7 @@ fz_drawfilltext(void *user, fz_text *text, fz_matrix ctm,
}
static void
-fz_drawstroketext(void *user, fz_text *text, fz_matrix ctm,
+fz_drawstroketext(void *user, fz_text *text, fz_strokestate *stroke, fz_matrix ctm,
fz_colorspace *colorspace, float *color, float alpha)
{
fz_warn("stroked text not implemented; filling instead");
@@ -447,7 +447,7 @@ fz_drawcliptext(void *user, fz_text *text, fz_matrix ctm)
}
static void
-fz_drawclipstroketext(void *user, fz_text *text, fz_matrix ctm)
+fz_drawclipstroketext(void *user, fz_text *text, fz_strokestate *stroke, fz_matrix ctm)
{
fz_drawcliptext(user, text, ctm);
}