Browse Source

Workaround for plugin window size on Mac Retina

pull/301/head
Luciano Iam 4 years ago
parent
commit
a2c80dac75
2 changed files with 22 additions and 0 deletions
  1. +11
    -0
      distrho/DistrhoUI_macOS.mm
  2. +11
    -0
      distrho/src/DistrhoUI.cpp

+ 11
- 0
distrho/DistrhoUI_macOS.mm View File

@@ -32,4 +32,15 @@
#define PuglWindowDelegate DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, WindowDelegate)
#define PuglWrapperView DISTRHO_MACOS_NAMESPACE_MACRO(DGL_NAMESPACE, PUGL_NAMESPACE, WrapperView)

#import <AppKit/Appkit.h>

#import "src/pugl.mm"

START_NAMESPACE_DISTRHO

float getMacMainScreenBackingScaleFactor()
{
return (float)[NSScreen mainScreen].backingScaleFactor;
}

END_NAMESPACE_DISTRHO

+ 11
- 0
distrho/src/DistrhoUI.cpp View File

@@ -184,12 +184,23 @@ void UI::uiFileBrowserSelected(const char*)
/* ------------------------------------------------------------------------------------------------------------
* UI Resize Handling, internal */

# if DISTRHO_OS_MAC
extern float getMacMainScreenBackingScaleFactor();
# endif // DISTRHO_OS_MAC

void UI::onResize(const ResizeEvent& ev)
{
UIWidget::onResize(ev);

# if DISTRHO_OS_MAC
float k = getMacMainScreenBackingScaleFactor();
const uint width = ev.size.getWidth() / k;
const uint height = ev.size.getHeight() / k;
# else
const uint width = ev.size.getWidth();
const uint height = ev.size.getHeight();
# endif // DISTRHO_OS_MAC

uiData->setSizeCallback(width, height);
}
#endif // !DISTRHO_PLUGIN_HAS_EXTERNAL_UI


Loading…
Cancel
Save