Repository navigation
Changes from v2.1 to 2.15
Highlights
- Moved the project to a CMake-only workflow.
- Added embedded GUI font support, removing the need to load the font from disk.
- Added user config, LUT, preset, and ImGui state folders.
- Added direct OpenColorIO LUT processing.
- Added local and portable preset support.
- Added native file dialogs for preset import/export.
- Added encoder settings UI.
- Added HTJ2K export support.
- Improved UTF-8 path handling across the app.
- Hardened crop/write logic, including half-size RAW output cases.
- Added macOS packaging support.
- Improved Windows runtime packaging for OpenMP.
Added
- Embedded FiraSans GUI font through CMake/resource generation.
- Runtime app path management:
- user config folder
- user LUT folder
- user presets folder
- user
imgui.ini - first-run copy of default config and LUTs
- Default LUT files:
identity.cubelinear.clf14bit_linear.clf14bit_sRGB_gamma.clf
- Direct OCIO LUT transform path using OpenColorIO
FileTransform. - Cached OCIO CPU processors for LUT application.
- Multithreaded LUT application over image rows.
- Presets menu in the GUI.
- Local
.tomlpresets. - Portable
.unrwpresetzip presets with bundled LUT files. - Native file dialogs through
nfdwhen available. - Console enable/disable implementation on Windows.
- New encoding controls for:
- TIFF compression
- OpenEXR compression
- PNG strategy/level
- JPEG quality/subsampling
- JPEG-2000/HTJ2K qstep
- HEIC quality
- JPEG XL quality/effort/speed
- macOS packaging files and packaging script.
Changed
- Removed the old Visual Studio solution/project files.
- CMake is now the main build system.
- Runtime config and default LUTs are copied beside the executable.
- Install layout now places:
unrw_config.tomlbeside the executable- default LUTs in
LUTs/beside the executable
- OpenColorIO is linked directly when available as a CMake target.
minizip-ngandnfdare discovered through CMake config packages when available.- DNG SDK discovery now supports
dng_sdk::dng_sdk. - OpenImageIO/fmt handling was improved for package compatibility.
- Output format list now includes HTJ2K.
- Encoder-specific settings replaced some older fixed output compression behavior.
- LUT folder config is now resolved relative to the active config file.
- Drag-and-drop helper files were reformatted and adjusted.
Fixed
- Hardened image write crop normalization.
- Fixed crop handling for half-size RAW output.
- Added checks for invalid crop sizes and out-of-buffer writes.
- Improved write error reporting from OpenImageIO.
- Fixed UTF-8/non-ASCII path handling in file IO, CLI paths, presets, processors, and GUI paths.
- Improved RAW memory write path to use OIIO output instead of manual raw byte writing.
- Fixed Windows OpenMP runtime bundling for MSVC builds.
- Filtered stale debug LCMS library references leaking from some OIIO package exports.
- Improved LibRaw OpenMP detection/linking.
- Removed unused GLEW dependency handling.