[librsvg: 83/95] rsvg_filter_primitive_turbulence_set_atts(): Parse attributes with the PHF
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 83/95] rsvg_filter_primitive_turbulence_set_atts(): Parse attributes with the PHF
- Date: Thu, 22 Feb 2018 03:20:06 +0000 (UTC)
commit 6cc3b0331423e023e36699e13cce46d996765c1c
Author: Federico Mena Quintero <federico gnome org>
Date: Wed Feb 21 17:32:34 2018 -0600
rsvg_filter_primitive_turbulence_set_atts(): Parse attributes with the PHF
rsvg-filter.c | 59 ++++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 42 insertions(+), 17 deletions(-)
---
diff --git a/rsvg-filter.c b/rsvg-filter.c
index 71e82203..6985c936 100644
--- a/rsvg-filter.c
+++ b/rsvg-filter.c
@@ -4135,30 +4135,55 @@ static void
rsvg_filter_primitive_turbulence_set_atts (RsvgNode *node, gpointer impl, RsvgHandle *handle,
RsvgPropertyBag atts)
{
RsvgFilterPrimitiveTurbulence *filter = impl;
+ RsvgPropertyBagIter *iter;
+ const char *key;
+ RsvgAttribute attr;
const char *value;
- if ((value = rsvg_property_bag_lookup (atts, "in")))
- g_string_assign (filter->super.in, value);
- if ((value = rsvg_property_bag_lookup (atts, "result")))
- g_string_assign (filter->super.result, value);
-
filter_primitive_set_x_y_width_height_atts ((RsvgFilterPrimitive *) filter, atts);
- if ((value = rsvg_property_bag_lookup (atts, "baseFrequency"))) {
- if (!rsvg_css_parse_number_optional_number (value, &filter->fBaseFreqX, &filter->fBaseFreqY)) {
- rsvg_node_set_attribute_parse_error (node, "baseFrequency", "expected number-optional-number");
- return;
+ iter = rsvg_property_bag_iter_begin (atts);
+
+ while (rsvg_property_bag_iter_next (iter, &key, &attr, &value)) {
+ switch (attr) {
+ case RSVG_ATTRIBUTE_IN:
+ g_string_assign (filter->super.in, value);
+ break;
+
+ case RSVG_ATTRIBUTE_RESULT:
+ g_string_assign (filter->super.result, value);
+ break;
+
+ case RSVG_ATTRIBUTE_BASE_FREQUENCY:
+ if (!rsvg_css_parse_number_optional_number (value, &filter->fBaseFreqX, &filter->fBaseFreqY)) {
+ rsvg_node_set_attribute_parse_error (node, "baseFrequency", "expected
number-optional-number");
+ goto out;
+ }
+ break;
+
+ case RSVG_ATTRIBUTE_NUM_OCTAVES:
+ filter->nNumOctaves = atoi (value);
+ break;
+
+ case RSVG_ATTRIBUTE_SEED:
+ filter->seed = atoi (value);
+ break;
+
+ case RSVG_ATTRIBUTE_STITCH_TILES:
+ filter->bDoStitching = (!strcmp (value, "stitch"));
+ break;
+
+ case RSVG_ATTRIBUTE_TYPE:
+ filter->bFractalSum = (!strcmp (value, "fractalNoise"));
+ break;
+
+ default:
+ break;
}
}
- if ((value = rsvg_property_bag_lookup (atts, "numOctaves")))
- filter->nNumOctaves = atoi (value);
- if ((value = rsvg_property_bag_lookup (atts, "seed")))
- filter->seed = atoi (value);
- if ((value = rsvg_property_bag_lookup (atts, "stitchTiles")))
- filter->bDoStitching = (!strcmp (value, "stitch"));
- if ((value = rsvg_property_bag_lookup (atts, "type")))
- filter->bFractalSum = (!strcmp (value, "fractalNoise"));
+out:
+ rsvg_property_bag_iter_end (iter);
}
RsvgNode *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]