mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-03 01:00:48 +00:00
A mesh gradient took its color space and component count from the first patch's first corner, so a later corner in another space was truncated or padded with zeros and written as the wrong color. Mesh corner colors now go through the same rule as gradient stops (`common_color_space`): process colors alone are DeviceCMYK, one spot alone is Separation, and mixes are DeviceN with process colorants first, then spots. Colors that rule can't unify (RGB with CMYK, registration) fail the document with `KrillaError::MixedMeshColorSpaces`. The opacity soft mask is unchanged, and a mesh in one space writes the same bytes as before. patches/10-mesh-gradients.patch holds #184's change and this fix, so patches 01 to 10 reproduce src; the ledger section 10 and SOURCE.json follow.