fwiw the original bitmap painted in the before/after images above is 512x512, so those are already demonstrating a 10% reduction in each dimension
Thanks, I will try this again now.
Are you sure you are not using any display scaling?
My GUI looks the same on Mac and PC. If anything, images look a little better on the PC, including my Plugin GUI.
Without any context whether you are using display scaling or how much downsampling you are applying this sounds like “it works on my machine” to me - sorry, no offense, but this isn’t really helping here..
Thanks @reuk setting it to highResamplingQuality indeed improves things. Can we add a way to define the default state for a GraphicsContextglobally? Otherwise I need to go through my whole codebase and change every paint callback by adding this line
g.setImageResamplingQuality(juce::Graphics::ResamplingQuality::highResamplingQuality);
There is Graphics::resetToDefaultState() where it is set to medium but this is hard coded and I want to avoid patching JUCE as much as possible.
It seems like Graphics::resetToDefaultState() dosn’t actually ever get called on Windows wth D2D but I finally found where the default setting is:
I just changed this to
D2D1_INTERPOLATION_MODE interpolationMode = D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC;
It would be really useful to be able to change that default value without the need to patch JUCE, a CMake option would be sufficient I guess. Can we get that @reuk? Is there any good reason not to do this?
Additionally, I think it’s better to have only one (configurable) default image interpolation mode for all components. Having different defaults for different classes is really confusing IMHO.
