Thanks AbominableFish for your kind reply.
What I find confusing in MacOS is that apparently scaling is managed as a "resolution option". That is, you set a "virtual" 1680x1050 or 1440x900 resolution as a way to scale your UI, even if in the back your real resolution is always 2560x1600.
In Windows it doesn't work like that; you set a resolution that can be any supported combination up to the max physical resolution of your screen, and you set up UI scaling with a different option. For example, you have a 1920x1080 (1080p) res and the UI at 125% or 150%. Any program querying the operating system see that the computer has a 1080p res (wether you are at 75%-125%-150% UI scaling)
Now, my remaining doubts:
- If MacOS uses this "virtual" resolutions as a mean for UI scaling, why would it answer back to any querying program that the res is the virtual one (1440x900) instead of the real one (2560x1600)? For example, I have plenty of programs that display graphics at 1440x900 when they should be doing it at 2560x1600 and be a lot crisper.
-Where does the 2880x1800 resolution you mention comes from? Is that a multiple of what? Why would Netflix detect that? (in my MacBook it displays at 1080p, but now I doubt is true since the default res is 1440x900).
Thanks!
No problem, I'm glad it helped.
As for the scaling on macOS vs Windows, I personally prefer the way it is done on macOS. The application has no information about the scaling, which is good, because then it doesn't need to decide how to display on 1x resolution, or on 1.5x scaling. It just renders everything one way and if the user wants to make items on the screen bigger or smaller, they tell macOS and it occurs system wide—apps don't need to worry at all about this. They just continue doing what they were doing. That's why a lot of things
don't scale correctly on Windows, but on macOS there never is any problems. I've never seen a scaling issue on macOS, but have seen scaling woes on Windows (4K displays seem to be the worst for this). Basically the scaling on macOS just seems to work, and it's one thing I think Apple got right.
So I would personally argue it's good that apps don't have access to the physical resolution as-is, because that's not a metric which they should care about.
It's important to note that on macOS there is no way to tell the operating system to render at the same resolution as your display but scale everything smaller. Basically, the way you scale on macOS
is by changing your virtual resolution. It's not like on Windows where you have a fixed resolution and you can change the scaling. Both methods have advantages and disadvantages. I personally prefer the macOS way because that way apps will never have scaling issues and developers don't need to deal with making extra assets for 1.5x scaling, 2.0x scaling, etc. However, if you want to use a scale at anything other than 100%, you will have to compromise by giving up on sharpness.
> If MacOS uses this "virtual" resolutions as a mean for UI scaling, why would it answer back to any querying program that the res is the virtual one
I'm not sure what you mean here, but macOS won't scale at 1440x900 unless you have that option selected in system preferences. If you have the 1280x800 option selected, that's how it's going to scale, and everything will be as crisp as can be. That's how I have it configured right now. If you want greatest parity between physical and virtual pixels, I recommend you do the same.
> Where does the 2880x1800 resolution you mention comes from? Is that a multiple of what?
This is another one of the confusions which makes it kind of annoying when talking about resolution. In system prefs it says 1440x900, which is the "scaling resolution." But it really means 2880x1800 because we're on a high DPI display. Similarly, if you chose the 1280x800 scaling option, the actual virtual resolution would be 2560x1600. The reason for this you probably know already from the article you linked.
Netflix is displaying at 1080p, but that doesn't mean Netflix thinks that your screen is 1080p. It's most likely because it thinks it's the optimal resolution for your internet connection, or it simply can't display more than 1080p (I think in Safari it can't). But I'm quite sure that Netflix detects your screen correctly as 2880x1440 in resolution.
If you're curious about how website and apps view your screen, go to this website:
http://whatismyscreenresolution.net
You'll notice that if you set the scaling resolution as 1440x900, then your screen will be identified as such (actually it is technically twice that, but many websites just report the scaled value). Basically anything in your operating system will take that as your virtual resolution.
You can also test it by taking a fullscreen screenshot and then looking at the resolution. If you're scaling at 1440x900, the res of the screenshot will be 2880x1440, confirming that the OS and everything in it is rendered at that virtual resolution before being downscaled to display it on your 2560x1600 screen.