Render an export into the colour space its file will claim

The colour-managed export branch left one call site deliberately unfixed, and
this is it. `render_for_export` composed with the default sRGB shader, so a
Display P3 export failed with an accurate error rather than producing a
mislabelled file — the right way to leave a half-finished path, and no way to
leave it.

The space is chosen at render time because that is the only time it can be:
the conversion happens in the shader, before the clip to 0..1, so by the time
pixels reach an encoder they are in exactly one space and the only honest
thing left is to label them. `Frame::in_space` carries which, and a mismatch
between what was rendered and what was asked for stays a typed error.

Also regenerates the traceability matrix over the four merged branches.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-17 09:34:57 +02:00
co-authored by Claude Opus 5
parent 1c16ca3d27
commit 4b36ca66aa
4 changed files with 53 additions and 40 deletions
+1 -1
View File
@@ -317,7 +317,7 @@ fn export_now(
};
let stored = settings.snapshot();
let frame = session.render_for_export()?;
let frame = session.render_for_export(stored.export.colour_space)?;
// The size has to be resolved before the name, because `{dimensions}` is
// one of the tokens the template can carry.