summaryrefslogtreecommitdiff
path: root/src/cairo-script-surface.c
diff options
context:
space:
mode:
authorRick Yorgason <rick@firefang.com>2021-08-15 06:58:54 +0000
committerAdrian Johnson <ajohnson@redneon.com>2021-08-15 06:58:54 +0000
commitecec0419f8e178d71e449b52acfdfe9ac03aed37 (patch)
treee6ede3cdc9a0ae02a6f56dfec38ff8b05cdcf9bb /src/cairo-script-surface.c
parent4dd48f0979f693dfc515eb3eff266ec6429f8b33 (diff)
downloadcairo-ecec0419f8e178d71e449b52acfdfe9ac03aed37.tar.gz
Added hairline support to cairo
Diffstat (limited to 'src/cairo-script-surface.c')
-rw-r--r--src/cairo-script-surface.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c
index 800db0780..9d6b954c1 100644
--- a/src/cairo-script-surface.c
+++ b/src/cairo-script-surface.c
@@ -709,6 +709,24 @@ _emit_line_width (cairo_script_surface_t *surface,
}
static cairo_status_t
+_emit_hairline (cairo_script_surface_t *surface, cairo_bool_t set_hairline)
+{
+ assert (target_is_active (surface));
+
+ if (surface->cr.current_style.is_hairline == set_hairline)
+ {
+ return CAIRO_STATUS_SUCCESS;
+ }
+
+ surface->cr.current_style.is_hairline = set_hairline;
+
+ _cairo_output_stream_printf (to_context (surface)->stream,
+ "%d set-hairline\n",
+ set_hairline);
+ return CAIRO_STATUS_SUCCESS;
+}
+
+static cairo_status_t
_emit_line_cap (cairo_script_surface_t *surface,
cairo_line_cap_t line_cap)
{
@@ -858,6 +876,10 @@ _emit_stroke_style (cairo_script_surface_t *surface,
if (unlikely (status))
return status;
+ status = _emit_hairline (surface, style->is_hairline);
+ if (unlikely (status))
+ return status;
+
status = _emit_dash (surface,
style->dash, style->num_dashes, style->dash_offset,
force);