Browse Source

Windows: Fixed an OpenGL scale issue in high-DPI plug-ins

tags/2021-05-28
ed 5 years ago
parent
commit
d77dae186d
1 changed files with 6 additions and 4 deletions
  1. +6
    -4
      modules/juce_opengl/opengl/juce_OpenGLContext.cpp

+ 6
- 4
modules/juce_opengl/opengl/juce_OpenGLContext.cpp View File

@@ -296,15 +296,17 @@ public:
{
if (auto* peer = component.getPeer())
{
auto localBounds = component.getLocalBounds();
auto displayScale = Desktop::getInstance().getDisplays().findDisplayForRect (component.getTopLevelComponent()->getScreenBounds()).scale;
auto newArea = peer->getComponent().getLocalArea (&component, localBounds).withZeroOrigin() * displayScale;
#if JUCE_WINDOWS && JUCE_WIN_PER_MONITOR_DPI_AWARE
auto newScale = getScaleFactorForWindow (nativeContext->getNativeHandle());
#else
auto newScale = Desktop::getInstance().getDisplays().findDisplayForRect (component.getTopLevelComponent()->getScreenBounds()).scale;
auto newScale = displayScale;
#endif
auto localBounds = component.getLocalBounds();
auto newArea = peer->getComponent().getLocalArea (&component, localBounds).withZeroOrigin() * newScale;
if (scale != newScale || viewportArea != newArea)
{
scale = newScale;


Loading…
Cancel
Save