I am on Windows - getPhysicalPixelScaleFactor() returns 1 for my main (non-scaled) monitor and 1.5 for my hires monitor (scaled to 150%).
For testing purposes i am using images with size 100 x 100 for both factors 1 and 1.5. I am actually using drawImageAt().
On monitor with factor 1 everything is normal, as expected.
Also on monitor with 1.5 factor, i see my displayed image scaled (not smaller as i would expect), despite the same, 100x100 image size and higher resolution - JUCE automatically scaled it and this is something i want to avoid.
I think it’s happening at very low level, native screen painting code - i understand it’s because of that JUCE is resizing everything automatically on scaled monitors, without user intervention. But i want to prevent this with my images.
Code from juce_win32_Windowing.cpp performPaint() method:
context->addTransform (AffineTransform::scale ((float) getPlatformScaleFactor()));
This is not the same thing as scaling, which is happening with DrawImage() method (regardless of scale factor), when target rectangle is larger than image. JUCE is auto-scaling it because of scaled monitor resolution.
I hope i am clear enough. Not sure, maybe i am missing something or there’s something i don’t understand completely.
Thx for help!