diff options
author | Rick Yorgason <rick@firefang.com> | 2021-08-15 06:58:54 +0000 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2021-08-15 06:58:54 +0000 |
commit | ecec0419f8e178d71e449b52acfdfe9ac03aed37 (patch) | |
tree | e6ede3cdc9a0ae02a6f56dfec38ff8b05cdcf9bb /src/cairo-script-surface.c | |
parent | 4dd48f0979f693dfc515eb3eff266ec6429f8b33 (diff) | |
download | cairo-ecec0419f8e178d71e449b52acfdfe9ac03aed37.tar.gz |
Added hairline support to cairo
Diffstat (limited to 'src/cairo-script-surface.c')
-rw-r--r-- | src/cairo-script-surface.c | 22 |
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); |