]> gitweb.michael.orlitzky.com - libsvgtiny.git/blobdiff - src/svgtiny_css.c
src/svgtiny*.{c,h}: move the libcss unit context into the parser state
[libsvgtiny.git] / src / svgtiny_css.c
index b80d0578b7bd219d8397a2532b23f1b4491e608d..3da3c8e165f34b0d6fb09cdcc04c488ecda3e0f8 100644 (file)
@@ -73,6 +73,12 @@ static css_error get_libcss_node_data(void *pw, void *node,
 static struct css_select_handler svgtiny_select_handler;
 
 
+/* Every call to svgtiny_select_style() needs this, so let's only make
+ * one copy. */
+static const css_media media_all = {
+       .type = CSS_MEDIA_ALL,
+};
+
 /**
  * Convenient wrapper around css_select_style()
  *
@@ -86,27 +92,9 @@ css_error svgtiny_select_style(struct svgtiny_parse_state *state,
                                const css_stylesheet *inline_sheet,
                                css_select_results **result)
 {
-       const css_media media_all = {
-               .type = CSS_MEDIA_ALL,
-       };
-
-       /* These 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. */
-       const css_unit_ctx unitctx = {
-               .viewport_width    = FLTTOFIX(state->viewport_width),
-               .viewport_height   = FLTTOFIX(state->viewport_height),
-               .font_size_default = FLTTOFIX(16.0),
-               .font_size_minimum = FLTTOFIX(6.0),
-               .device_dpi        = FLTTOFIX(96.0),
-               .root_style        = NULL,
-               .pw                = NULL,
-               .measure           = NULL,
-       };
-
        return css_select_style(state->select_ctx,
                        node,
-                       &unitctx,
+                       &state->unit_ctx,
                        &media_all,
                        inline_sheet,
                        &svgtiny_select_handler,