Most macOS applications now support rendering at 1x and 2x. And arbitrary scaling is done by the OS not by apps.

That’s the ideal. Apps shouldn’t concern themselves with pixels. It’s the OSs job to know the hardware the machine uses.

This leads to visible moire patterns at non-integer scalings, though