(void) CloneString(&clone_info->primitive,draw_info->primitive);
if (draw_info->geometry != (char *) NULL)
(void) CloneString(&clone_info->geometry,draw_info->geometry);
+ clone_info->compliance=draw_info->compliance;
clone_info->viewbox=draw_info->viewbox;
clone_info->affine=draw_info->affine;
clone_info->gravity=draw_info->gravity;
graphic_context[n]->clipping_mask=DrawClippingMask(image,
graphic_context[n],clip_path,exception);
clip_path=DestroyString(clip_path);
+ if (draw_info->compliance != SVGCompliance)
+ status=SetImageMask(image,WritePixelMask,
+ graphic_context[n]->clipping_mask,exception);
}
break;
}
primitive_type=ColorPrimitive;
break;
}
+ if (LocaleCompare("compliance",keyword) == 0)
+ {
+ GetNextToken(q,&q,extent,token);
+ graphic_context[n]->compliance=(ComplianceType) ParseCommandOption(
+ MagickComplianceOptions,MagickFalse,token);
+ }
status=MagickFalse;
break;
}
((IsPixelInfoGray(&draw_info->fill) == MagickFalse) ||
(IsPixelInfoGray(&draw_info->stroke) == MagickFalse)))
(void) SetImageColorspace(image,sRGBColorspace,exception);
- status=SetImageMask(image,WritePixelMask,draw_info->clipping_mask,exception);
+ status=MagickTrue;
+ if (draw_info->compliance == SVGCompliance)
+ status=SetImageMask(image,WritePixelMask,draw_info->clipping_mask,
+ exception);
x=(ssize_t) ceil(primitive_info->point.x-0.5);
y=(ssize_t) ceil(primitive_info->point.y-0.5);
image_view=AcquireAuthenticCacheView(image,exception);
}
}
image_view=DestroyCacheView(image_view);
- status&=SetImageMask(image,WritePixelMask,(Image *) NULL,exception);
+ if (draw_info->compliance == SVGCompliance)
+ status&=SetImageMask(image,WritePixelMask,(Image *) NULL,exception);
if (image->debug != MagickFalse)
(void) LogMagickEvent(DrawEvent,GetMagickModule()," end draw-primitive");
return(status != 0 ? MagickTrue : MagickFalse);