mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Windows: Make OpenGLContext::getRenderingScale() insensitive to Component transforms
This makes it consistent between Windows and MacOS. This is restoring
the behaviour prior to 7e404118b5.
This commit is contained in:
parent
17d81f9c1d
commit
c456f67c3f
1 changed files with 11 additions and 11 deletions
|
|
@ -459,17 +459,17 @@ public:
|
|||
const auto localBounds = component.getLocalBounds();
|
||||
const auto newArea = peer->getComponent().getLocalArea (&component, localBounds).withZeroOrigin() * displayScale;
|
||||
|
||||
#if JUCE_WINDOWS && JUCE_WIN_PER_MONITOR_DPI_AWARE
|
||||
// Some hosts (Pro Tools 2022.7) do not take the current DPI into account when sizing
|
||||
// plugin editor windows. Instead of querying the OS for the DPI of the editor window,
|
||||
// we approximate based on the physical size of the window that was actually provided
|
||||
// for the context to draw into. This may break if the OpenGL context's component is
|
||||
// scaled differently in its width and height - but in this case, a single scale factor
|
||||
// isn't that helpful anyway.
|
||||
const auto newScale = (float) newArea.getWidth() / (float) localBounds.getWidth();
|
||||
#else
|
||||
const auto newScale = (float) displayScale;
|
||||
#endif
|
||||
const auto newScale = [&]
|
||||
{
|
||||
#if JUCE_WINDOWS && JUCE_WIN_PER_MONITOR_DPI_AWARE
|
||||
// Some hosts (Pro Tools 2022.7) do not take the window scaling into account when sizing
|
||||
// plugin editor windows. The displayScale however seems to be correctly reported even in
|
||||
// such cases.
|
||||
return (float) displayScale * Desktop::getInstance().getGlobalScaleFactor();
|
||||
#else
|
||||
return (float) displayScale;
|
||||
#endif
|
||||
}();
|
||||
|
||||
areaAndScale.set ({ newArea, newScale }, [&]
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue