dom_element *svg;
dom_string *svg_name;
lwc_string *svg_name_lwc;
- struct svgtiny_parse_state state;
+ struct svgtiny_parse_state state = {
+ /* Initialize the unit context here because it has a
+ * const member and doing it any other way subverts
+ * the type system. The magic numbers below were taken
+ * from the libcss example program without much
+ * thought, because at the moment we don't support any
+ * properties with units. */
+ .unit_ctx = {
+ .font_size_default = FLTTOFIX(16.0),
+ .font_size_minimum = FLTTOFIX(6.0),
+ .device_dpi = FLTTOFIX(96.0),
+ .root_style = NULL,
+ .pw = NULL,
+ .measure = NULL,
+ }
+ };
float x, y, width, height;
svgtiny_code code;
return svgtiny_LIBCSS_ERROR;
}
+ /* ...and the unit context, whose other fields were
+ * initialized along with the parser state itself */
+ state.unit_ctx.viewport_width = FLTTOFIX(viewport_width);
+ state.unit_ctx.viewport_height = FLTTOFIX(viewport_height);
+
#define SVGTINY_STRING_ACTION2(s,n) \
if (dom_string_create_interned((const uint8_t *) #n, \
strlen(#n), &state.interned_##s) \