10-17-2018, 06:51 PM
Everything should "just work".
The way we handled HiDPI before has influenced how we handled this new scalable UI. For the most part, HiDPI support is basically scaling that occurs at the OS-level, whereas the Ai 23 scalable UI is scaling that occurs only at the app-level (and in conjunction with the OS' HiDPI scaling). So, before, you always specified the location/size of UI elements in a "1x" coordinate system, and internally hdi_core adjusted the location/size however necessary for the OS' HiDPI scaling. Now you still specify things in a "1x" coordinate system, and hdi_core still adjusts it however necessary for the combination of the OS' HiDPI scaling and Illustrator's app-level scaling.
3x and 4x image variants are only needed if you want to make your UI look crisp at some combinations of large OS-level scalers and/or app-level scalers. If you only provide 2x image variants (i.e. make no changes to your code other than compiling against 0.7.2), those images will be upscaled at runtime if the "final/combined scaler" ends up being larger than 2x. Of course, this will result in a blurry or blocky image, but it's better than an image rendering at truly 2x but then being the incorrect physical size.
The way we handled HiDPI before has influenced how we handled this new scalable UI. For the most part, HiDPI support is basically scaling that occurs at the OS-level, whereas the Ai 23 scalable UI is scaling that occurs only at the app-level (and in conjunction with the OS' HiDPI scaling). So, before, you always specified the location/size of UI elements in a "1x" coordinate system, and internally hdi_core adjusted the location/size however necessary for the OS' HiDPI scaling. Now you still specify things in a "1x" coordinate system, and hdi_core still adjusts it however necessary for the combination of the OS' HiDPI scaling and Illustrator's app-level scaling.
3x and 4x image variants are only needed if you want to make your UI look crisp at some combinations of large OS-level scalers and/or app-level scalers. If you only provide 2x image variants (i.e. make no changes to your code other than compiling against 0.7.2), those images will be upscaled at runtime if the "final/combined scaler" ends up being larger than 2x. Of course, this will result in a blurry or blocky image, but it's better than an image rendering at truly 2x but then being the incorrect physical size.