LR-HDR-VISUALIZE: HDR controls in the Light panel, Visualize HDR, export option

- Light panel: HDR switch, headroom limit and an SDR Rendition flyout
  (shown with HDR on); Visualize HDR beside the switch.
- `Overlay::HdrRange` / `view.visualizeHdr`: the SDR render dimmed to grey,
  with pixels the HDR rendition puts above SDR white painted in four bands by
  stops above it. Rendered on the CPU from the float HDR render.
- Export dialog: "HDR output" for JPEG (gain map) and 32-bit TIFF.
- Parity (Q. HDR 2 ✅ 3 🟡, LR-EDIT-HDR-MODE ✅, LR-EXP-HDR 🟡), README, ROADMAP.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
akvaithi
2026-10-09 22:40:37 -05:00
co-authored by Claude Opus 5.5
parent 34d9c8f2d2
commit af06f2dbc1
13 changed files with 154 additions and 20 deletions
+6 -1
View File
@@ -337,7 +337,12 @@ pub fn render(src: &Arc<Rgb32f>, info: &SourceInfo, s: &DevelopSettings, req: &R
let effective = s.effective();
let s: &DevelopSettings = &effective;
// the kernel writes 8-bit output: high-bit-depth exports (and soft proofs) render on the CPU
if !enabled() || req.depth != lightcraft_pipeline::OutputDepth::U8 || req.proof.is_some() {
// Visualize HDR needs the float HDR render: CPU too
if !enabled()
|| req.depth != lightcraft_pipeline::OutputDepth::U8
|| req.proof.is_some()
|| req.overlay == lightcraft_pipeline::Overlay::HdrRange
{
return None;
}
let s = &*lightcraft_pipeline::settings_for(s, req);