GraphiteEditor / GraphiteEditor/Graphite

SVG importer ignores `fill-rule="evenodd"`

Open
#4,332 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
27.2k
Forks
1.3k
Avg merge
20h 5m
Merged PRs (30d)
57

Description

## Description

The SVG importer does not respect `fill-rule="evenodd"`. A compound path whose inner subpath should create a transparent hole is imported as a solid shape. follow up of #4329

## Steps to reproduce

1. Open `fill-rule-evenodd.svg` in a browser or another SVG viewer. It appears as a purple square with a transparent square hole.
2. Import the same file into Graphite.
3. Compare the imported result with the browser rendering.

## Expected behavior

The imported shape is a purple square with a transparent square hole, matching the SVG rendering in a browser.
Image

## Actual behavior

The inner square is filled, so the imported result is a solid purple square. The importer behaves as if the path used the default nonzero fill rule.

Image

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the SVG importer and reproduce the issue with `fill-rule-evenodd.svg`, comparing Graphite's result with a browser or another SVG viewer. Trace how the importer handles `fill-rule="evenodd"`; done means the inner square becomes a transparent hole and the imported shape matches the SVG rendering.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.