Taken from this page from Micrsoft, it states that The standard DPI settings are 100% (96 DPI), 125% (120 DPI), and 150% (144 DPI)
.
Now taking their example further down the page which has For example, if the user's DPI setting is 144 DPI, and you ask Direct2D to draw a 200 × 100 rectangle, the rectangle will be 300 × 150 physical pixels
.
My confusion comes from the fact that if we scale everything up by 50%, but increase the DPI by 50%, should this not give an unchanged size in terms of what is seen on the screen, i.e the rendered size of a widget is unchanged if the widget is scaled up by 50%, but the DPI is also increased by 50%.
Let us give an example, if we have a 96 DPI setting on the computer and use the 200 x 100 rectangle from above, this means that the rectangle will be 200/96 = 2.08 inches high on the users monitor. Now, the user will go into the user settings and increase the scaling to 150% (Also changing the DPI to 144, states the documentation from above). Now that we have a 300 x 150 rectangle, the height will now be 300/144 = 2.08 inches high. The exact same height rendered on the users monitor.
The same applies to fonts. On a 96 DPI monitor, using one point sizing for our text (1 pt = 1/72 inch), this means that the height of our rendered to screen text will be 96/72 = 1.3 pixels high, meaning it is taking up 1.3/96 (1.38%) of an inch in height. Now, the user changes to 150% scaling (144 DPI) we can perform the same calculations. 144/72 = 2 pixels in height. 2/144 is roughly 1.38% of an inch in height. Meaning, that the rendered text has not changed in size.
Despite occupying more pixels, the DPI increase makes it so that the rendered size to the monitor is unchanged.
Now, I believe that I am wrong, from observing that changing the scale does actually increase the size of fonts and widgets, but could somebody please see where I have a misunderstanding here. Thanks.