GraphiteEditor / GraphiteEditor/Graphite

Graphite reads clip_path but ignores usvg::Group::mask()

Abierto
#4,340 0 comentarios 0 reacciones 0 asignados Ver en GitHub
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.

Image

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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.