photocraft/crates/gpu
Brandon Thomas 685aca7769 feat(compose): Lab documents evaluate Invert, Posterize, Threshold, Brightness/Contrast and Gradient Map on L, a, b
In Lab documents Photoshop evaluates these adjustments on the Lab channels,
not on the screen RGB colour:

- Invert and Posterize act on L, a and b alike (normalised L/100,
  (a+128)/255, (b+128)/255; Invert is n -> 1 - n).
- Brightness/Contrast (modern and legacy) applies its tone curve to L only;
  a and b are unchanged.
- Threshold splits on L alone and outputs neutral black or white.
- Gradient Map is driven by L (Reverse uses 1 - L).

Adjustment layers (CPU compositor) and destructive Image > Adjustments both
go through the new `adjust::apply_in`; the GPU compositor defers these
adjustments to the CPU in Lab documents. Levels and Curves keep their Lab
records; other adjustments stay on the screen colour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:02:05 -04:00
..
examples GPU composite: reuse unchanged lower-stack chunks for property edits (#1169) 2026-10-11 02:07:48 -04:00
src feat(compose): Lab documents evaluate Invert, Posterize, Threshold, Brightness/Contrast and Gradient Map on L, a, b 2026-10-12 05:02:05 -04:00
tests Group effects follow their children's effects, not just their pixels (#3274) (#3326) 2026-10-11 22:20:23 -04:00
Cargo.toml GPU: fall back to Rgba16Float when Rgba32Float isn't renderable (#7, #4) (#22) 2026-10-04 02:27:54 -04:00