mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-13 22:21:59 +00:00
Expand: type reports a gradient only when Fill expands one of its outlines
object.expand.info reported a gradient (and a fill) to expand for any type whose characters have a gradient fill. Expand outlines type first, and each outline then holds the run's gradient on its own box, so a gradient that repeats or reflects in more than 256 runs across every outline stays a gradient: the dialog enabled options that changed nothing. - The query now measures the paths type.createOutlines makes of the glyphs, ruby glyphs and underline and strikethrough bars, each with its run's paint, and reports a gradient when one of them expands. It lays the text out only when a run has a gradient fill, stops at the first outline that expands, and does not change the document. Type in symbol art, blends and repeats goes through the same check. - docs/mcp.md says when gradient is false; docs/target-app-parity.md gets an evidence line.
This commit is contained in:
+3
-1
@@ -4669,7 +4669,9 @@ and those of the object shape the outline of the clip group, the gradient fits t
|
||||
box, as the canvas paints the fill; the expanded art does not keep them. With `fill: false` gradient and pattern fills
|
||||
stay live. `object.expand.info` answers which options have something to expand in the selection
|
||||
(`{object, fill, stroke, gradient, appearance, symbolArt?}`; `gradient` says whether Fill has a gradient fill, which Expand
|
||||
Gradient To applies to; `appearance` whether the selection has appearance attributes Expand Appearance expands first,
|
||||
Gradient To applies to, that it turns into art: it is false when every such fill repeats or reflects in more than 256
|
||||
runs across the box it fills, which for type, symbol art included, is the box of each outline Object makes of a character,
|
||||
ruby character, underline or strikethrough; `appearance` whether the selection has appearance attributes Expand Appearance expands first,
|
||||
for which Object → Expand… is dimmed in the menus; `symbolArt: {fill, stroke, gradient}`, present when the selection
|
||||
holds symbol instances that `object` expands, whether only their art holds it, which Fill and Stroke reach only with
|
||||
`object` on), and `object.mesh.create` on a gradient-filled object colours the
|
||||
|
||||
@@ -1756,6 +1756,7 @@ Moved from the ROADMAP's "Shipped so far" on 2026-10-10. Update it when a featur
|
||||
- **Pattern tiles:** the renderer keeps a tile of each pattern for each scale it rasterizes the pattern at, until the tiles fill the tile cache's budget, and then drops the least recently used tiles first. Objects that show one pattern at different scales, such as a pattern scaled to 25% with Transform Pattern Tiles next to the same pattern at 100%, draw from tiles kept between frames.
|
||||
|
||||
- **Pattern fills in Expand:** Object › Expand with Fill turns a pattern fill into the pattern's tiles in a clip group shaped like the object, with the fill's opacity and blend mode, and the object's other fills and strokes stay above or below it in paint order, in one undo step (`object.expand`).
|
||||
- **Gradient options for type in Expand:** the Expand dialog enables its gradient options for type, symbol art included, only when the outline of at least one character, ruby character, underline or strikethrough gets a gradient that Fill turns into art. A gradient that repeats or reflects in more than 256 runs across a character's outline, VectorCraft's own limit, stays a gradient after Expand (`object.expand.info`, `crates/engine/src/tests/objexpand.rs`).
|
||||
|
||||
- **Type with transparency or effects:** type at less than 100% opacity, in a blend mode other than Normal, or with raster effects such as a drop shadow keeps its glyph outlines between frames, as opaque type does, and is laid out again when it is edited or the fonts change. At 2880 × 1800 on 8 threads, a page of 1,000 type objects takes 13 ms a frame instead of 23 ms at 80% opacity, 31 ms instead of 41 ms in Multiply and 16 ms instead of 26 ms with a drop shadow, with the same pixels.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user