summaryrefslogtreecommitdiff
path: root/src/cairo-types-private.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-08-15 09:44:03 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-08-15 10:31:47 +0100
commit545f30856aac98199a49cf66c72dbcb66c1f3a4f (patch)
tree995aa743e7390b83718280b2dd770c9b794f6931 /src/cairo-types-private.h
parentbbe704406ca97cd51ed1fcc76da7648abde36331 (diff)
downloadcairo-545f30856aac98199a49cf66c72dbcb66c1f3a4f.tar.gz
stroke: Convert the outlines into contour and then into a polygon
In step 1 of speeding up stroking, we introduce contours as a means for tracking the connected edges around the stroke. By keeping track of these chains, we can analyse the edges as we proceed and eliminate redundant vertices speeding up rasterisation. Coincidentally fixes line-width-tolerance (looks like a combination of using spline tangent vectors and tolerance). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-types-private.h')
-rw-r--r--src/cairo-types-private.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cairo-types-private.h b/src/cairo-types-private.h
index 0b57ec28c..966cd8fb8 100644
--- a/src/cairo-types-private.h
+++ b/src/cairo-types-private.h
@@ -63,6 +63,9 @@ typedef struct _cairo_clip cairo_clip_t;
typedef struct _cairo_clip_path cairo_clip_path_t;
typedef struct _cairo_color cairo_color_t;
typedef struct _cairo_color_stop cairo_color_stop_t;
+typedef struct _cairo_contour cairo_contour_t;
+typedef struct _cairo_contour_chain cairo_contour_chain_t;
+typedef struct _cairo_contour_iter cairo_contour_iter_t;
typedef struct _cairo_device_backend cairo_device_backend_t;
typedef struct _cairo_font_face_backend cairo_font_face_backend_t;
typedef struct _cairo_gstate cairo_gstate_t;
@@ -312,7 +315,8 @@ typedef struct _cairo_polygon {
typedef cairo_warn cairo_status_t
(*cairo_spline_add_point_func_t) (void *closure,
- const cairo_point_t *point);
+ const cairo_point_t *point,
+ const cairo_slope_t *tangent);
typedef struct _cairo_spline_knots {
cairo_point_t a, b, c, d;