GraphiteEditor / GraphiteEditor/Graphite
Graphite reads clip_path but ignores usvg::Group::mask()
- Lenguaje dominante
- Rust
- Estrellas
- 27.2k
- Forks
- 1.3k
- Merge medio
- 20 h 5 min
- PR fusionados (30 d)
- 57
Descripción
## Description
Graphite’s SVG importer reads resolved clip paths from `usvg::Group::clip_path()`, but
it never reads resolved masks from `usvg::Group::mask()`.
When `usvg` parses an element with `mask="url(#mask-id)"`, it places the resolved mask
on a generated `usvg::Group`. Graphite recursively imports that group’s visible
children while silently discarding its mask. Consequently, the unmasked source artwork
is imported.
## Reproduction
Import `HameronsDocs/usvg-group-mask-import-debug.svg`.
The fixture deliberately contains only:
- One solid blue rectangle.
- One circular SVG mask.
- `mask-type="alpha"` to exclude luminance-mask behavior from this issue.
- No gradients, transforms, strokes, clip paths, filters, or fill-rule dependencies.
```svg
```
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Comienza importando HameronsDocs/usvg-group-mask-import-debug.svg y rastrea el manejo que hace el importador de SVG de usvg::Group::clip_path() junto con usvg::Group::mask(). Se considera terminado cuando se conserva la máscara alfa circular, de modo que el rectángulo azul queda recortado al círculo en lugar de importar el material gráfico sin máscara.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- rust
- Área
- computer-graphics
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 65/100