X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2Fsvgtiny_internal.h;h=5ece69d42c1ab66cfa52a46321e31d3f9b67fe8e;hb=7b8fc7bb381c266a4f1ecde5b10bb4c09e2f9bc0;hp=ba0db7029b30d719dc74d2dd401fdce9d1de0ac7;hpb=545123c6ec9a3d3903e713c1c2919762417538dd;p=libsvgtiny.git diff --git a/src/svgtiny_internal.h b/src/svgtiny_internal.h index ba0db70..5ece69d 100644 --- a/src/svgtiny_internal.h +++ b/src/svgtiny_internal.h @@ -54,11 +54,24 @@ struct svgtiny_parse_state { * precede it. */ css_select_ctx *select_ctx; + /* A libcss unit context. This is used to compute and compose + * styles, and is convenient to create once and pass along + * with the rest of the state. */ + css_unit_ctx unit_ctx; + + /* Keep track of the parent element's computed style so that + * we can compose its children's computed styles with it. */ + css_computed_style *parent_style; + /* paint attributes */ svgtiny_colour fill; svgtiny_colour stroke; int stroke_width; + /* alpha */ + float fill_opacity; + float stroke_opacity; + /* gradients */ struct svgtiny_parse_state_gradient fill_grad; struct svgtiny_parse_state_gradient stroke_grad; @@ -102,6 +115,10 @@ char *svgtiny_strndup(const char *s, size_t n); /* svgtiny_css.c */ css_error svgtiny_create_stylesheet(css_stylesheet **sheet, bool inline_style); +css_error svgtiny_select_style(struct svgtiny_parse_state *state, + dom_element *node, + const css_stylesheet *inline_sheet, + css_select_results **result); /* svgtiny_gradient.c */ void svgtiny_find_gradient(const char *id,