mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-24 10:09:01 -06:00
An HDR edit's preview shows its SDR rendition, so its histogram said nothing about the highlights above SDR white. Now it shows the HDR rendition: `pipeline::hdr_histogram` renders the edit small (384 px, float HDR, same framing) and bins it with SDR on the left half and the HDR range on the right (`Histogram::of_hdr`, `HdrBins`), on a fixed scale of Hdr::MAX_EV_LIMIT (5) stops above SDR white so it doesn't rescale when the headroom limit changes. The engine's `develop()` (CPU and GPU renders) and the web worker swap it in for HDR edits; high-bit-depth, windowed and proofed requests keep the image's histogram, and a display profile's histogram doesn't replace it. Web workers carry the HDR bins across their wire (`Histogram::to_words` / `from_words`). The panel draws it in Lightroom's layout: a solid line at SDR white, dashed lines between the stops, the headroom limit as an orange line with the range past it dimmed, a bar under the plot (white; one band per stop in Visualize HDR range's colours while that is on), SDR / HDR labels and an info tooltip. Follow-up to #646, ported from #466. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>