Fix HEIC/HEIF HDR extraction via WIC and global SDR White Level UI scaling#96
Fix HEIC/HEIF HDR extraction via WIC and global SDR White Level UI scaling#96justnullname wants to merge 1 commit intomainfrom
Conversation
… Tone Mapping - **WIC High-Precision HDR Decoding**: Modified the WIC fallback path (`LoadToMemory`, `LoadToMemoryPMR`, `LoadToFrame`) to detect `GUID_WICPixelFormat128bppRGBAFloat` (and related FP16/32 formats). If detected, it bypasses the standard 8-bit `32bppPBGRA` downsampling, instead initializing the `IWICFormatConverter` to directly output `128bppRGBAFloat`. This natively extracts 10-bit/12-bit pixel data from HEIC/HEIF files without introducing third-party libraries (e.g., `libheif`). - **HDR-to-HDR Tone Mapping (Roll-off)**: Added a new DirectCompute shader `HLSL_ToneMapHdrToHdr`. When `m_isAdvancedColor` is active and the image's `contentPeakScRgb` exceeds the display's `displayPeakScRgb`, `RenderEngine::UploadRawFrameToGPU` routes the float texture through this shader. This applies a smooth roll-off curve, preventing hard clipping of highlights. - **Global SDR White Level UI Scaling**: Cleaned up the creation of UI brushes across `main.cpp`, `CompositionEngine.cpp`, and `UIRenderer.cpp`. Standard UI components (like the Info Grid, Debug HUD, Settings, and Compare Mode indicators) now correctly multiply their base RGB colors by the current display's `hdrWhiteScale`, ensuring the UI does not appear unreadably dim next to bright HDR image content. - Defer Ultra HDR dual-texture processing to maintain the project's strict zero-bloat/lightweight principles.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Fixes issue with HEIC/HEIF images being downsampled to 8-bit, implements HDR roll-off to prevent clipping, and scales core UI components correctly in HDR mode.
PR created automatically by Jules for task 3002149536282055275 started by @justnullname