Browse Source

Fix AU for retina

Signed-off-by: falkTX <falktx@falktx.com>
pull/452/head
falkTX 1 year ago
parent
commit
e7c852e9ad
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
4 changed files with 26 additions and 25 deletions
  1. +3
    -3
      distrho/src/DistrhoUI.cpp
  2. +7
    -10
      distrho/src/DistrhoUIAU.mm
  3. +1
    -1
      distrho/src/DistrhoUIInternal.hpp
  4. +15
    -11
      distrho/src/DistrhoUIPrivateData.hpp

+ 3
- 3
distrho/src/DistrhoUI.cpp View File

@@ -432,7 +432,7 @@ void UI::onResize(const ResizeEvent& ev)
{
UIWidget::onResize(ev);

#if !(defined(DISTRHO_PLUGIN_TARGET_VST3) || defined(DISTRHO_PLUGIN_TARGET_CLAP))
#if ! DISTRHO_UI_USES_SIZE_REQUEST
if (uiData->initializing)
return;

@@ -442,10 +442,10 @@ void UI::onResize(const ResizeEvent& ev)
#endif
}

// NOTE: only used for VST3 and CLAP
// NOTE: only used for CLAP and VST3
void UI::requestSizeChange(const uint width, const uint height)
{
#if defined(DISTRHO_PLUGIN_TARGET_VST3) || defined(DISTRHO_PLUGIN_TARGET_CLAP)
#if DISTRHO_UI_USES_SIZE_REQUEST
if (uiData->initializing)
uiData->window->setSizeFromHost(width, height);
else


+ 7
- 10
distrho/src/DistrhoUIAU.mm View File

@@ -157,15 +157,9 @@ public:
{
const double scaleFactor = fUI.getScaleFactor();
const NSSize size = NSMakeSize(fUI.getWidth() / scaleFactor, fUI.getHeight() / scaleFactor);
NSView* const uiView = reinterpret_cast<NSView*>(fUI.getNativeWindowHandle());

for (NSView* subview in [uiView subviews])
{
[subview setFrameSize:size];
break;
}
[uiView setFrameSize:size];
[fParentView setFrameSize:size];
[fParentView setHidden:NO];
}

private:
@@ -368,7 +362,9 @@ private:
void setSize(const uint width, const uint height)
{
const double scaleFactor = fUI.getScaleFactor();
[fParentView setFrameSize:NSMakeSize(width / scaleFactor, height / scaleFactor)];
const NSSize size = NSMakeSize(width / scaleFactor, height / scaleFactor);

[fParentView setFrameSize:size];
}

static void setSizeCallback(void* const ptr, const uint width, const uint height)
@@ -402,8 +398,9 @@ END_NAMESPACE_DISTRHO

- (id) initWithPreferredSize:(NSSize)size
{
self = [super initWithFrame: NSMakeRect(0, 0, size.width, size.height)];
[self setHidden:NO];
ui = nullptr;
self = [super initWithFrame: NSMakeRect(0, 0, size.width, size.height)];
[self setHidden:YES];
return self;
}



+ 1
- 1
distrho/src/DistrhoUIInternal.hpp View File

@@ -307,7 +307,7 @@ public:
#endif
}

#if defined(DISTRHO_PLUGIN_TARGET_VST3) || defined(DISTRHO_PLUGIN_TARGET_CLAP)
#if DISTRHO_UI_USES_SIZE_REQUEST
void setWindowSizeFromHost(const uint width, const uint height)
{
#if DISTRHO_PLUGIN_HAS_EXTERNAL_UI


+ 15
- 11
distrho/src/DistrhoUIPrivateData.hpp View File

@@ -44,15 +44,15 @@
#endif

#if defined(DISTRHO_PLUGIN_TARGET_AU)
# define DISTRHO_UI_USES_SCHEDULED_REPAINTS true
# define DISTRHO_UI_USES_SCHEDULED_REPAINTS 1
#else
# define DISTRHO_UI_USES_SCHEDULED_REPAINTS false
# define DISTRHO_UI_USES_SCHEDULED_REPAINTS 0
#endif

#if defined(DISTRHO_PLUGIN_TARGET_VST3) || defined(DISTRHO_PLUGIN_TARGET_CLAP)
# define DISTRHO_UI_USES_SIZE_REQUEST true
#if defined(DISTRHO_PLUGIN_TARGET_CLAP) || defined(DISTRHO_PLUGIN_TARGET_VST3)
# define DISTRHO_UI_USES_SIZE_REQUEST 1
#else
# define DISTRHO_UI_USES_SIZE_REQUEST false
# define DISTRHO_UI_USES_SIZE_REQUEST 0
#endif

#if defined(DISTRHO_PLUGIN_TARGET_AU) || defined(DISTRHO_PLUGIN_TARGET_VST2)
@@ -234,11 +234,15 @@ public:
if (pData->view == nullptr)
return;

if (receivedReshapeDuringInit)
ui->uiReshape(getWidth(), getHeight());

initializing = false;
puglBackendLeave(pData->view);

if (receivedReshapeDuringInit)
{
puglBackendEnter(pData->view);
ui->uiReshape(getWidth(), getHeight());
puglBackendLeave(pData->view);
}
}

// used for temporary windows (VST/CLAP get size without active/visible view)
@@ -254,7 +258,7 @@ public:
puglBackendEnter(pData->view);
}

#if defined(DISTRHO_PLUGIN_TARGET_VST3) || defined(DISTRHO_PLUGIN_TARGET_CLAP)
#if DISTRHO_UI_USES_SIZE_REQUEST
void setSizeFromHost(const uint width, const uint height)
{
puglSetSizeAndDefault(pData->view, width, height);
@@ -310,9 +314,9 @@ protected:
ui->uiScaleFactorChanged(scaleFactor);
}

# if DISTRHO_UI_FILE_BROWSER
#if DISTRHO_UI_FILE_BROWSER
void onFileSelected(const char* filename) override;
# endif
#endif

DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(PluginWindow)
};


Loading…
Cancel
Save