I’m noticing that the Windows version of MouseCursor does not seem to obey a passed in scaleFactor parameter.
Looking at the CustomMouseCursorInfo::create() method in juce_win32_Windowing.cpp, I see that it looks at the system metrics for restricting the size, but scaleFactor does not seem to be used at all.
void* CustomMouseCursorInfo::create() const
{
const int maxW = GetSystemMetrics (SM_CXCURSOR);
const int maxH = GetSystemMetrics (SM_CYCURSOR);
#if SCALE_FACTOR_TEST
int w = (float)image.getWidth() / scaleFactor + 0.5;
int h = (float)image.getHeight() / scaleFactor + 0.5;
Image im = image.rescaled(w, h);
int hotspotX = hotspot.x;
int hotspotY = hotspot.y;
#else
Image im(image);
int hotspotX = hotspot.x;
int hotspotY = hotspot.y;
#endif
....
I tried switching to the above SCALE_FACTOR_TEST code and that seems to do the trick. But I’m just wondering if I’m missing some reason that the scaleFactor is intentionally ignored.