HIRAM
(Richard E Barber)
September 5, 2023, 2:48am
1
Here are a couple of links to some test builds of hi-DPI support in RawTherapee for the GUI elements (icons, graphs, etc). For screenshots and more information on what this is, see the GitHub link below. Thanks for your testing!
MacOS Universal App @ kd6kxr.github.io/hidpi-1 (iCloud Drive)
Windows Portable Artifact @ GitHub.com/Beep6581/RawTherapee/suites
Beep6581:dev
← Pandagrapher:real_hidpi
opened 03:22PM - 28 Aug 23 UTC
This PR brings "real" Hi-DPI support for RawTherapee GUI. Except for image relat… ed custom widgets (ex: thumbnail, image area, ...), all the RT GUI has been migrated to handle Hi-DPI.
Example 1:
- Before (RT 5.9):
![image](https://github.com/Beep6581/RawTherapee/assets/40305292/1953de1e-8507-4a4c-b598-0df596728203)
- After (this PR):
![image](https://github.com/Beep6581/RawTherapee/assets/40305292/e8aa9910-82d1-47f1-a16b-6dccd36a9aa9)
Example 2:
- Before (RT 5.9):
![image](https://github.com/Beep6581/RawTherapee/assets/40305292/001f6765-f21e-464b-8d34-20f84c00970b)
- After (this PR):
![image](https://github.com/Beep6581/RawTherapee/assets/40305292/0efcdc9e-3ba8-4707-b6ff-2898ad45546c)
This PR has been tested with the following environnements:
- Windows 11, 2K screen
- MacOS Ventura, MacBook Retina screen
- Debian Testing (VM), MacBook Retina screen
In a second PR, I will work on the image related custom widgets.
Detailed list of changes:
- Icons are now managed as Gtk Icon Theme. Surfaces are directly generated from .svg files and takes into account the DPI of the screen to avoid "blur" effect. To avoid reaching GDI limit on Windows, surfaces are buffered and reused (I hope it is handled differently in Gtk4...). Large parts of GUI code have been updated.
- Custom widget `on_draw` functions have been updated to handle Hi-DPI during drawing.
- Bug fix with Histogram panel widget: When loading an image, raw histogram data were incorectly not set (but provided)
- Bug fix with Histogram panel widget: Fixes incorrect curve scaling in raw histogram mode (was incorrectly scaled using luma and chroma data)
- Bug fix loading icon cache data: With some versions of Glib/Glibmm library on MacOS, Glib::KeyFile "load_from_file" function does not raise a Glib::Error but another exception. This causes cached data not saved on disk (and thumbnails not displayed in explorer). Adds robustness testing if file is present first before calling the function
- Bug fix loading dynamic profiles data: Same issue with Glib::KeyFile "load_from_file" funtion
- Cleanup of RT theme management
- Simplification of font size management as Pango/Gtk directly manage pt/px conversion based on screen DPI
- Bug fix in Preference panel: If panel is closed with "cancel" button, font size was not reinitialized to previously saved one
- Bug fix in `RawTherapee.css` theme: Font size was sprecified in css file and so user choice could be ignored
1 Like