[feature] Scaling: bright future ideas

Postings relating to old VirtualBox pre-releases
Post Reply
Technologov
Volunteer
Posts: 3342
Joined: 10. May 2007, 16:59
Location: Israel

[feature] Scaling: bright future ideas

Post by Technologov »

Old scaling of (v4.x) had a problem: it was incompatible with "dynamic resolution resizing"
I don't think new scaling (v5.0) is perfect, but I understand why it was added.
My gut feeling: scaling will be re-designed yet again in the future.

Basically ultimate future solution should combine:
a. good scaling algo
b. dyn. resolution resizing
c. be smart when to use what, when user drags/resizes window.

Theoretically it _may_ be achieved.
1. upon VBox install, by asking user which level is comfortable font size to read [1]
2. by querying host's display resolution + density PPI
3. by querying guest's fonts (assuming GA installed, and for DOS mode 80x25 text)
4. if GA not installed use scaling
5. if GA installed, use a smart combination of scaling + dyn.res.resizing, so that guest's text font never goes under, say, 3 millimeters

Basically, when user resizes a VM window, VBox will use dynamically res. resizing while guest's text font is readable, and then you fall-back to scaling. Each user will have own setting of "readable", in either pixels or millimeters, so he can define than if text goes under 3 milimeters, guest will go into scaled mode.
If guest is Retina-display-ready (like Mac OS X, or Android), no scaling is needed, only dyn.res. resizing, because guest OS is smart enough to adjust fonts + icons by itself, so it never becomes unreadble. (assuming GA will be developed for those 2 OSes).

So if legacy guest OS end up with 1 millimeter fonts, but user has chosen, that his level of comfort-ability is at 3 millimeters, image will get scaled at 300%, and only then dyn.res.resizing will kick in. Basically the scaling % amount can be guessed by heuristics. Combined with a better algo, this should give us perfect result.

Multi-monitor configurations: a user's laptop can be Retina, but his docking station / desktop monitor might be not.
Or he might run a dual-monitor host, with one monitor UltraHD/QFHD (3840x2160), and another FullHD (1920x1080).
This is why we should query host OS for pixel density (PPI).
Scaling percentage must be different for each host's monitor output.

[1] Upon VirtualBox install / first-launch, user must choose his/her comfortable level of vision, to match his/her (Retina?) display, according to vision table of Snellen. This should be globally configurable, per-user. Without this table, and non-optimized legacy OSes (DOS, Win XP), we will end-up with sub-millimeter fonts with future 8K UltraHD+ displays (8192x4800 resolution @ 20" monitors).
Attachments
Vision table of Snellen. [1]
Vision table of Snellen. [1]
table_Snellen.jpg (29.51 KiB) Viewed 1587 times
Post Reply