4 ms·
This approach might work in practice [1]: (0) From the display, get ≥ 2 of: physical display size, ppi, and resolution. This is the hardest step; the display
by jpeloquin 9y ago
This approach might work in practice [1]:
(0) From the display, get ≥ 2 of: physical display size, ppi, and resolution. This is the hardest step; the display hardware must accurately report its physical size or physical sizing will not work.
(1) For a glyph of logical size `x` in points, calculate the size `y` in pixels that would render it with physical size `x` on the display.
(2) Scale `y` based on the expected distance from the user's eyes to the display. Specifically, the software chooses a scaling factor such that the glyph has the same apparent size to the user as if it was displayed 18" from the user's eyes with physical size `x`. (18" is about how far away a person would hold a printout when reading it.) The exact reference point doesn't matter much; it just has to be consistent between devices. This step is so a given logical size will look pretty much the same across devices even if they have different form factors.
(3) Apply user preferences on a device, app, and document dependent basis for additional scaling as usual to accommodate user needs and preferences. Hopefully, with steps 0–2 implemented, there will be less need for users to fiddle with per-app and per-document settings.
[1] This is essentially equivalent to "use arcdegrees", just unpacked a little.
Edit: line breaks