X-Git-Url: https://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=src%2Fsvgtiny_internal.h;h=5ece69d42c1ab66cfa52a46321e31d3f9b67fe8e;hb=099cae0989f0ef3db52de99fb0d1e562465f5a02;hp=6a04c72d2c2a3877318579846862a3ac68f11110;hpb=1e74f7c861dc35ef1fa7d661c9b125305c9f33a6;p=libsvgtiny.git diff --git a/src/svgtiny_internal.h b/src/svgtiny_internal.h index 6a04c72..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,10 +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,