Merge pull request #464 from Vrroom/svgParseFix

Fixing svg parsing
This commit is contained in:
Patrick Walton 2021-05-28 08:26:08 -07:00 committed by GitHub
commit 5f4bf75ffa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 4 deletions

View File

@ -97,8 +97,7 @@ impl SVGScene {
clip_outline: &mut Option<Outline>) { clip_outline: &mut Option<Outline>) {
let mut state = (*state).clone(); let mut state = (*state).clone();
let node_transform = usvg_transform_to_transform_2d(&node.transform()); let node_transform = usvg_transform_to_transform_2d(&node.transform());
state.transform = node_transform * state.transform; state.transform = state.transform * node_transform;
match *node.borrow() { match *node.borrow() {
NodeKind::Group(ref group) => { NodeKind::Group(ref group) => {
if group.filter.is_some() { if group.filter.is_some() {
@ -107,10 +106,10 @@ impl SVGScene {
if group.mask.is_some() { if group.mask.is_some() {
self.result_flags.insert(BuildResultFlags::UNSUPPORTED_MASK_ATTR); self.result_flags.insert(BuildResultFlags::UNSUPPORTED_MASK_ATTR);
} }
if let Some(ref clip_path_name) = group.clip_path { if let Some(ref clip_path_name) = group.clip_path {
if let Some(clip_outline) = self.clip_paths.get(clip_path_name) { if let Some(clip_outline) = self.clip_paths.get(clip_path_name) {
let mut clip_path = ClipPath::new((*clip_outline).clone()); let transformed_outline = clip_outline.clone().transformed(&state.transform);
let mut clip_path = ClipPath::new(transformed_outline);
clip_path.set_clip_path(state.clip_path); clip_path.set_clip_path(state.clip_path);
clip_path.set_name(format!("ClipPath({})", clip_path_name)); clip_path.set_name(format!("ClipPath({})", clip_path_name));
let clip_path_id = self.scene.push_clip_path(clip_path); let clip_path_id = self.scene.push_clip_path(clip_path);