diff --git a/distrho/src/DistrhoPluginCLAP.cpp b/distrho/src/DistrhoPluginCLAP.cpp index eafc05d90..618ffe7b3 100644 --- a/distrho/src/DistrhoPluginCLAP.cpp +++ b/distrho/src/DistrhoPluginCLAP.cpp @@ -280,10 +280,10 @@ class ClapUI : public DGL_NAMESPACE::IdleCallback double scaleFactor = fScaleFactor; #if defined(DISTRHO_UI_DEFAULT_WIDTH) && defined(DISTRHO_UI_DEFAULT_HEIGHT) - *width = DISTRHO_UI_DEFAULT_WIDTH; - *height = DISTRHO_UI_DEFAULT_HEIGHT; if (d_isZero(scaleFactor)) scaleFactor = 1.0; + *width = DISTRHO_UI_DEFAULT_WIDTH * scaleFactor; + *height = DISTRHO_UI_DEFAULT_HEIGHT * scaleFactor; #else UIExporter tmpUI(nullptr, 0, fPlugin.getSampleRate(), nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, d_nextBundlePath, @@ -371,10 +371,10 @@ class ClapUI : public DGL_NAMESPACE::IdleCallback { // fix width if (reqRatio > ratio) - *width = static_cast(*height * ratio + 0.5); + *width = d_roundToIntPositive(*height * ratio); // fix height else - *height = static_cast(static_cast(*width) / ratio + 0.5); + *height = d_roundToIntPositive(static_cast(*width) / ratio); } } diff --git a/distrho/src/DistrhoPluginVST2.cpp b/distrho/src/DistrhoPluginVST2.cpp index 8ce61eae5..2fa18cf3d 100644 --- a/distrho/src/DistrhoPluginVST2.cpp +++ b/distrho/src/DistrhoPluginVST2.cpp @@ -602,10 +602,10 @@ class PluginVst : public ParameterAndNotesHelper { double scaleFactor = fLastScaleFactor; #if defined(DISTRHO_UI_DEFAULT_WIDTH) && defined(DISTRHO_UI_DEFAULT_HEIGHT) - fVstRect.right = DISTRHO_UI_DEFAULT_WIDTH; - fVstRect.bottom = DISTRHO_UI_DEFAULT_HEIGHT; if (d_isZero(scaleFactor)) scaleFactor = 1.0; + fVstRect.right = DISTRHO_UI_DEFAULT_WIDTH * scaleFactor; + fVstRect.bottom = DISTRHO_UI_DEFAULT_HEIGHT * scaleFactor; #else UIExporter tmpUI(nullptr, 0, fPlugin.getSampleRate(), nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, d_nextBundlePath, diff --git a/distrho/src/DistrhoUIVST3.cpp b/distrho/src/DistrhoUIVST3.cpp index fe6503355..cb194b28d 100644 --- a/distrho/src/DistrhoUIVST3.cpp +++ b/distrho/src/DistrhoUIVST3.cpp @@ -92,10 +92,10 @@ static void applyGeometryConstraints(const uint minimumWidth, { // fix width if (reqRatio > ratio) - rect->right = static_cast(rect->bottom * ratio + 0.5); + rect->right = d_roundToIntPositive(rect->bottom * ratio); // fix height else - rect->bottom = static_cast(static_cast(rect->right) / ratio + 0.5); + rect->bottom = d_roundToIntPositive(static_cast(rect->right) / ratio); } } @@ -1527,10 +1527,10 @@ struct dpf_plugin_view : v3_plugin_view_cpp { double scaleFactor = view->scale != nullptr ? view->scale->scaleFactor : 0.0; #if defined(DISTRHO_UI_DEFAULT_WIDTH) && defined(DISTRHO_UI_DEFAULT_HEIGHT) - rect->right = DISTRHO_UI_DEFAULT_WIDTH; - rect->bottom = DISTRHO_UI_DEFAULT_HEIGHT; if (d_isZero(scaleFactor)) scaleFactor = 1.0; + rect->right = DISTRHO_UI_DEFAULT_WIDTH * scaleFactor; + rect->bottom = DISTRHO_UI_DEFAULT_HEIGHT * scaleFactor; #else UIExporter tmpUI(nullptr, 0, view->sampleRate, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, d_nextBundlePath, @@ -1540,6 +1540,7 @@ struct dpf_plugin_view : v3_plugin_view_cpp { scaleFactor = tmpUI.getScaleFactor(); tmpUI.quit(); #endif + rect->left = rect->top = 0; #ifdef DISTRHO_OS_MAC rect->right /= scaleFactor;