mirror of
https://github.com/storytold/photocraft.git
synced 2026-11-11 16:38:24 -06:00
The document's CMYK profile is active per thread (with_cmyk_space), and the parallel composite ran its tiles on rayon workers outside that scope. On a CMYK document with its own profile, every blend mode other than Normal and Dissolve then converted those tiles through the built-in coated CMYK: a 40 px Multiply line 1100 px long (17+ tiles, parallel at the default threshold) differed from the serial path in 256384 samples. The workers now enter the caller's CMYK space, as the compositor and gpu crates do. Test: a_parallel_composite_converts_through_the_documents_cmyk_profile fails without the fix. Co-authored-by: Unemars <62496697+Unemars@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
23 lines
573 B
TOML
23 lines
573 B
TOML
[package]
|
|
name = "photocraft-paint"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
photocraft-geom = { workspace = true }
|
|
photocraft-color = { workspace = true }
|
|
photocraft-raster = { workspace = true }
|
|
serde = { workspace = true }
|
|
|
|
# Large tips rasterize, accumulate and composite in parallel (the same pixels as serially).
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
rayon = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
photocraft-cms = { workspace = true }
|
|
serde_json = { workspace = true }
|