GraphiteEditor / GraphiteEditor/Graphite

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

オープン
#4,332 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Rust
スター
27.2k
フォーク
1.3k
平均マージ
20時間 5分
マージ済み PR(30日)
57

説明

## 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

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず SVG importer の場所を特定し、`fill-rule-evenodd.svg` で問題を再現して、Graphite の結果をブラウザーまたは別の SVG viewer と比較します。importer が `fill-rule="evenodd"` をどのように処理しているかを追跡します。内側の正方形が透明な穴になり、インポートされた形状が SVG のレンダリングと一致すれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
rust
領域
computer-graphics
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
55/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。