Plug-ins: painted live effects refuse gradient stop plates without a spot link

A gradient stop's process plates print beside the tint of the spot swatch
that the stop itself links to. A painted live effect could return a stop
with `plates` and no link, or a link to a process swatch or Registration,
and the result was drawn with plates that no plate ever prints.

- The painted-output decoder refuses `plates` on a stop with no `swatch`
  (absent or null). The gradient's own `swatch` does not link its stops.
- The reference check refuses `plates` on a stop linked to a swatch that
  is not a spot swatch. It runs again on a cached result, so a result is
  refused once its swatch stops being a spot swatch. A missing swatch
  keeps the error that names the swatch.
- Either fault refuses the whole result, and `lastError` names the
  stop's `plates`. Plates on a stop linked to a spot swatch, all-zero
  ones included, are kept. Filter and importer output keep clamping and
  unlinking plates as before.

Docs: docs/plugins.md, docs/target-app-parity.md. The new message has a
row in every complete message catalog.
This commit is contained in:
dotCooCoo
2026-11-14 16:42:12 -08:00
parent 895e9493d2
commit d078e13ad8
29 changed files with 182 additions and 7 deletions
+2 -1
View File
@@ -804,7 +804,8 @@ is a piece drawn by itself, in the order returned, with paints of its own:
anchors, 256 fills and 256 strokes per piece, 256 stops per gradient), finite numbers in range with nothing clamped
(color components, tints, offsets, opacities, midpoints 0.13 to 0.87, stops in order of `offset`, stroke
widths 0 to 1,000 pt, miter limits 1 to 500), and every swatch a solid paint, gradient or stop links to and every
pattern named in the document. One fault refuses the whole result: that step of the stack draws its input as it was,
pattern named in the document. A gradient stop's `plates` need that stop's own link to a spot swatch of the document;
the gradient's `swatch` does not link its stops. One fault refuses the whole result: that step of the stack draws its input as it was,
the effect record stays, and `plugin.info`'s `lastError` names the plug-in and the field, for example `Test Tone:
plug-in output: objects[1].strokes[0].width: …`.
- The pieces are never written into the document while it is drawn, measured, previewed, saved or exported. PDF and SVG