console: use hidpi scale reporting

I decided to factor this into the user's scale option (instead of
somehow using it as default if the user has not specified it), because
it makes the option handling simpler, and won't break things like
per-screen DPI if the user only wants to scale the console font by a
factor.
This commit is contained in:
wm4 2019-12-20 12:53:56 +01:00
parent ac474631c1
commit 05cd4c9e08
2 changed files with 11 additions and 3 deletions

View File

@ -89,7 +89,10 @@ Configurable Options
Default: 1
All drawing is scaled by this value, including the text borders and the
cursor. Change it if you have a high-DPI display.
cursor.
If the VO backend in use has HiDPI scale reporting implemented, the option
value is scaled with the reported HiDPI scale.
``font``
Default: unset (picks a hardcoded font depending on detected platform)

View File

@ -143,9 +143,13 @@ end
function update()
pending_update = false
local dpi_scale = mp.get_property_native("display-hidpi-scale", 1.0)
dpi_scale = dpi_scale * opts.scale
local screenx, screeny, aspect = mp.get_osd_size()
screenx = screenx / opts.scale
screeny = screeny / opts.scale
screenx = screenx / dpi_scale
screeny = screeny / dpi_scale
-- Clear the OSD if the REPL is not active
if not repl_active then
@ -675,6 +679,7 @@ end)
-- PlayRes of the OSD will need to be adjusted.
mp.observe_property('osd-width', 'native', update)
mp.observe_property('osd-height', 'native', update)
mp.observe_property('display-hidpi-scale', 'native', update)
-- Enable log messages. In silent mode, mpv will queue log messages in a buffer
-- until enable_messages is called again without the silent: prefix.