| @@ -149,7 +149,9 @@ enum CarlaLv2URIDs { | |||
| // ui stuff | |||
| kUridBackgroundColor, | |||
| kUridForegroundColor, | |||
| #ifndef CARLA_OS_MAC | |||
| kUridScaleFactor, | |||
| #endif | |||
| kUridWindowTitle, | |||
| // custom carla props | |||
| kUridCarlaAtomWorkerIn, | |||
| @@ -353,7 +355,9 @@ struct CarlaPluginLV2Options { | |||
| TransientWinId, | |||
| BackgroundColor, | |||
| ForegroundColor, | |||
| #ifndef CARLA_OS_MAC | |||
| ScaleFactor, | |||
| #endif | |||
| WindowTitle, | |||
| Null, | |||
| Count | |||
| @@ -431,6 +435,7 @@ struct CarlaPluginLV2Options { | |||
| optForegroundColor.type = kUridAtomInt; | |||
| optForegroundColor.value = &fgColor; | |||
| #ifndef CARLA_OS_MAC | |||
| LV2_Options_Option& optScaleFactor(opts[ScaleFactor]); | |||
| optScaleFactor.context = LV2_OPTIONS_INSTANCE; | |||
| optScaleFactor.subject = 0; | |||
| @@ -438,6 +443,7 @@ struct CarlaPluginLV2Options { | |||
| optScaleFactor.size = sizeof(float); | |||
| optScaleFactor.type = kUridAtomFloat; | |||
| optScaleFactor.value = &uiScale; | |||
| #endif | |||
| LV2_Options_Option& optSampleRate(opts[SampleRate]); | |||
| optSampleRate.context = LV2_OPTIONS_INSTANCE; | |||
| @@ -7877,8 +7883,10 @@ private: | |||
| return kUridBackgroundColor; | |||
| if (std::strcmp(uri, LV2_UI__foregroundColor) == 0) | |||
| return kUridForegroundColor; | |||
| #ifndef CARLA_OS_MAC | |||
| if (std::strcmp(uri, LV2_UI__scaleFactor) == 0) | |||
| return kUridScaleFactor; | |||
| #endif | |||
| if (std::strcmp(uri, LV2_UI__windowTitle) == 0) | |||
| return kUridWindowTitle; | |||
| @@ -8015,8 +8023,10 @@ private: | |||
| return LV2_UI__backgroundColor; | |||
| case kUridForegroundColor: | |||
| return LV2_UI__foregroundColor; | |||
| #ifndef CARLA_OS_MAC | |||
| case kUridScaleFactor: | |||
| return LV2_UI__scaleFactor; | |||
| #endif | |||
| case kUridWindowTitle: | |||
| return LV2_UI__windowTitle; | |||
| @@ -103,10 +103,12 @@ public: | |||
| */ | |||
| virtual void* getWidget() const noexcept = 0; | |||
| #ifndef CARLA_OS_MAC | |||
| /*! | |||
| * TESTING | |||
| */ | |||
| virtual void setScaleFactor(double scaleFactor) = 0; | |||
| #endif | |||
| /*! | |||
| * TESTING | |||
| @@ -103,7 +103,9 @@ enum CarlaLv2URIDs { | |||
| // ui stuff | |||
| kUridBackgroundColor, | |||
| kUridForegroundColor, | |||
| #ifndef CARLA_OS_MAC | |||
| kUridScaleFactor, | |||
| #endif | |||
| kUridWindowTitle, | |||
| // custom carla props | |||
| kUridCarlaAtomWorkerIn, | |||
| @@ -148,7 +150,9 @@ struct Lv2PluginOptions { | |||
| TransientWinId, | |||
| BackgroundColor, | |||
| ForegroundColor, | |||
| #ifndef CARLA_OS_MAC | |||
| ScaleFactor, | |||
| #endif | |||
| WindowTitle, | |||
| Null, | |||
| Count | |||
| @@ -192,6 +196,7 @@ struct Lv2PluginOptions { | |||
| optForegroundColor.type = kUridAtomInt; | |||
| optForegroundColor.value = &fgColor; | |||
| #ifndef CARLA_OS_MAC | |||
| LV2_Options_Option& optScaleFactor(opts[ScaleFactor]); | |||
| optScaleFactor.context = LV2_OPTIONS_INSTANCE; | |||
| optScaleFactor.subject = 0; | |||
| @@ -199,6 +204,7 @@ struct Lv2PluginOptions { | |||
| optScaleFactor.size = sizeof(float); | |||
| optScaleFactor.type = kUridAtomFloat; | |||
| optScaleFactor.value = &uiScale; | |||
| #endif | |||
| LV2_Options_Option& optTransientWinId(opts[TransientWinId]); | |||
| optTransientWinId.context = LV2_OPTIONS_INSTANCE; | |||
| @@ -831,10 +837,12 @@ public: | |||
| fUiOptions.useThemeColors = opts.useThemeColors; | |||
| } | |||
| #ifndef CARLA_OS_MAC | |||
| void setScaleFactor(const double scaleFactor) override | |||
| { | |||
| fLv2Options.uiScale = static_cast<float>(scaleFactor); | |||
| } | |||
| #endif | |||
| void uiResized(const uint width, const uint height) override | |||
| { | |||
| @@ -1314,8 +1322,10 @@ private: | |||
| return kUridBackgroundColor; | |||
| if (std::strcmp(uri, LV2_UI__foregroundColor) == 0) | |||
| return kUridForegroundColor; | |||
| #ifndef CARLA_OS_MAC | |||
| if (std::strcmp(uri, LV2_UI__scaleFactor) == 0) | |||
| return kUridScaleFactor; | |||
| #endif | |||
| if (std::strcmp(uri, LV2_UI__windowTitle) == 0) | |||
| return kUridWindowTitle; | |||
| @@ -1452,8 +1462,10 @@ private: | |||
| return LV2_UI__backgroundColor; | |||
| case kUridForegroundColor: | |||
| return LV2_UI__foregroundColor; | |||
| #ifndef CARLA_OS_MAC | |||
| case kUridScaleFactor: | |||
| return LV2_UI__scaleFactor; | |||
| #endif | |||
| case kUridWindowTitle: | |||
| return LV2_UI__windowTitle; | |||
| @@ -72,8 +72,10 @@ public: | |||
| #endif | |||
| CARLA_SAFE_ASSERT_RETURN(fHostUI != nullptr, false); | |||
| #ifndef CARLA_OS_MAC | |||
| if (options.isStandalone) | |||
| fPlugin->setScaleFactor(carla_get_desktop_scale_factor()); | |||
| #endif | |||
| fHostUI->setTitle(options.windowTitle.buffer()); | |||