summaryrefslogtreecommitdiff
path: root/rsvg-mask.c
diff options
context:
space:
mode:
authorCaleb Michael Moore <cmoore@src.gnome.org>2005-10-12 09:01:01 +0000
committerCaleb Michael Moore <cmoore@src.gnome.org>2005-10-12 09:01:01 +0000
commit4289af24cf674ad5f4a8cb378ed8558171c7f215 (patch)
treea88d7b92bc9b49db5237a1a2268a60b684c00191 /rsvg-mask.c
parentc9b099bc5c11f18cc22ae4e7099db2ffd800c9b5 (diff)
downloadlibrsvg-4289af24cf674ad5f4a8cb378ed8558171c7f215.tar.gz
objectBoudingBox clip paths and masks
Diffstat (limited to 'rsvg-mask.c')
-rw-r--r--rsvg-mask.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/rsvg-mask.c b/rsvg-mask.c
index 9627ab27..b4a858d1 100644
--- a/rsvg-mask.c
+++ b/rsvg-mask.c
@@ -33,7 +33,7 @@ rsvg_mask_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts)
{
const char *id = NULL, *klazz = NULL, *value;
RsvgMask *mask;
- double font_size;
+ double font_size, xscale = 1., yscale = 1.;
font_size = rsvg_state_current_font_size (ctx);
mask = (RsvgMask *)self;
@@ -42,8 +42,11 @@ rsvg_mask_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts)
{
if ((value = rsvg_property_bag_lookup (atts, "maskUnits")))
{
- if (!strcmp (value, "userSpaceOnUse"))
+ if (!strcmp (value, "userSpaceOnUse")){
mask->maskunits = userSpaceOnUse;
+ xscale = (gdouble)ctx->width;
+ yscale = (gdouble)ctx->height;
+ }
else
mask->maskunits = objectBoundingBox;
}
@@ -58,25 +61,25 @@ rsvg_mask_set_atts (RsvgNode * self, RsvgHandle *ctx, RsvgPropertyBag *atts)
mask->x =
rsvg_css_parse_normalized_length (value,
ctx->dpi_x,
- 1,
+ xscale,
font_size);
if ((value = rsvg_property_bag_lookup (atts, "y")))
mask->y =
rsvg_css_parse_normalized_length (value,
ctx->dpi_y,
- 1,
+ yscale,
font_size);
if ((value = rsvg_property_bag_lookup (atts, "width")))
mask->width =
rsvg_css_parse_normalized_length (value,
ctx->dpi_x,
- 1,
+ xscale,
font_size);
if ((value = rsvg_property_bag_lookup (atts, "height")))
mask->height =
rsvg_css_parse_normalized_length (value,
ctx->dpi_y,
- 1,
+ yscale,
font_size);
if ((value = rsvg_property_bag_lookup (atts, "id")))
{