View Single Post
Old 12-05-2019, 01:45 PM   #222
Human being with feelings
MT_'s Avatar
Join Date: Oct 2016
Location: Moscow, Russia
Posts: 78

Originally Posted by White Tie View Post
The V6 theme would limit you to 200%, because that's as high as I made it go. So at 400% you'd get a half size 200% theme.
Thanks for the info. That’s what I suspected based on the official info and what makes Reaper not actually future-proof and not quite HiDPI-compatible. The whole HiDPI support is not just about hard-coded themes, but more about the application’s flexible rendering infrastructure.

For Reaper to be 100% HiDPI-compatible and future-proof, Reaper should be able to scale any theme automatically (with no need for user to manually edit any files with no guaranteed result) based on the data corresponding to the highest pixel density (scale, zoom) the theme supports.

So if the maximum scale a theme supports is 200%, the 200% part of the theme would be automatically upscaled with a ratio of 2.0 when OS-level zoom is 400% (400/200 = 2.0). And such scaling could be smart: either nearest-neighbour (nonblurry) or bilinear/bicubic (blurry) interpolation could be used depending on whether upscaling ratio is integer or fractional.

So for scaling a 200% theme to 300%, with a corresponding ratio of 1.5 (fractional), bilinear/bicubic interpolation would be inevitably used because 1.51.5 pixels are physically impossible without partially mixing sibling pixels of original image. But for scaling 200% to 400%, nearest neighbour would be used, resulting in perfect uniform square same-color 22 pixels. For example, that’s how Windows upscales non-DPI-aware (DPI-unaware) apps: with blur at fractional ratios like 150% (=1.5), and with no blur at integer ratios like 200% (2.0) or 300% (3.0).

TLDR: True future-proof HiDPI support (not tied to whether the theme supports a specific DPI or whether a higher-DPI theme will ever be created), would include a scaling mechanism built into Reaper itself, and that mechanism would automatically scale any theme selected by the user, according to OS-level zoom regardless of whether it is equal to one of those explicitly supported by the theme.

And do I understand correctly that HiDPI support in Reaper 6.0 (compared with 5.x) is not limited just to creating a more complete theme, but also includes some fundamental internal changes in its program logic? Do those changes include Reaper’s capability (either already available or allowing for relatively easy implementation) to autoscale themes, like I described before? Thanks.

Last edited by MT_; 12-05-2019 at 02:28 PM.
MT_ is offline   Reply With Quote