X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2Fsvgtiny_internal.h;h=5ece69d42c1ab66cfa52a46321e31d3f9b67fe8e;hb=7b8fc7bb381c266a4f1ecde5b10bb4c09e2f9bc0;hp=25da7ca809305c769f8ec9929d16a8ee084c15fc;hpb=edad8070c13b02019e766f821d65d83bd6c5cdb4;p=libsvgtiny.git diff --git a/src/svgtiny_internal.h b/src/svgtiny_internal.h index 25da7ca..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; @@ -68,6 +81,14 @@ struct svgtiny_parse_state { #include "svgtiny_strings.h" #undef SVGTINY_STRING_ACTION2 + /* Where we store the interned copy of the SVG XML namespace, + * + * http://www.w3.org/2000/svg + * + * We handle it separately it has a different type + * (lwc_string) than those above (dom_string). + */ + lwc_string *interned_svg_xmlns; }; struct svgtiny_list; @@ -92,8 +113,12 @@ char *svgtiny_strndup(const char *s, size_t n); #endif /* svgtiny_css.c */ -css_error svgtiny_resolve_url(void *pw, - const char *base, lwc_string *rel, lwc_string **abs); +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,