From 5978247a0b58f64a7cbca5671cb40a795ec94246 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Fri, 12 Feb 2021 18:58:19 +0100 Subject: [PATCH] Don't serialize input size for IPlugView::GetSize --- src/common/logging/vst3.cpp | 8 ++++---- src/common/serialization/vst3/plug-view/plug-view.h | 7 ++----- src/plugin/bridges/vst3-impls/plug-view-proxy.cpp | 7 +++---- src/wine-host/bridges/vst3.cpp | 8 ++++---- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/common/logging/vst3.cpp b/src/common/logging/vst3.cpp index e3d3fcbd..40c3959e 100644 --- a/src/common/logging/vst3.cpp +++ b/src/common/logging/vst3.cpp @@ -1571,10 +1571,10 @@ void Vst3Logger::log_response(bool is_host_vst, log_response_base(is_host_vst, [&](auto& message) { message << response.result.string(); if (response.result == Steinberg::kResultOk) { - message << ", "; + message << ", "; } }); } diff --git a/src/common/serialization/vst3/plug-view/plug-view.h b/src/common/serialization/vst3/plug-view/plug-view.h index d6e88ad3..7e64aed7 100644 --- a/src/common/serialization/vst3/plug-view/plug-view.h +++ b/src/common/serialization/vst3/plug-view/plug-view.h @@ -210,12 +210,12 @@ class YaPlugView : public Steinberg::IPlugView { */ struct GetSizeResponse { UniversalTResult result; - Steinberg::ViewRect updated_size; + Steinberg::ViewRect size; template void serialize(S& s) { s.object(result); - s.object(updated_size); + s.object(size); } }; @@ -227,12 +227,9 @@ class YaPlugView : public Steinberg::IPlugView { native_size_t owner_instance_id; - Steinberg::ViewRect size; - template void serialize(S& s) { s.value8b(owner_instance_id); - s.object(size); } }; diff --git a/src/plugin/bridges/vst3-impls/plug-view-proxy.cpp b/src/plugin/bridges/vst3-impls/plug-view-proxy.cpp index 31727625..ba5bc9b3 100644 --- a/src/plugin/bridges/vst3-impls/plug-view-proxy.cpp +++ b/src/plugin/bridges/vst3-impls/plug-view-proxy.cpp @@ -168,11 +168,10 @@ tresult PLUGIN_API Vst3PlugViewProxyImpl::onKeyUp(char16 key, tresult PLUGIN_API Vst3PlugViewProxyImpl::getSize(Steinberg::ViewRect* size) { if (size) { - const GetSizeResponse response = - send_mutually_recursive_message(YaPlugView::GetSize{ - .owner_instance_id = owner_instance_id(), .size = *size}); + const GetSizeResponse response = send_mutually_recursive_message( + YaPlugView::GetSize{.owner_instance_id = owner_instance_id()}); - *size = response.updated_size; + *size = response.size; return response.result; } else { diff --git a/src/wine-host/bridges/vst3.cpp b/src/wine-host/bridges/vst3.cpp index 6b6e65c4..9112dfd0 100644 --- a/src/wine-host/bridges/vst3.cpp +++ b/src/wine-host/bridges/vst3.cpp @@ -724,16 +724,16 @@ void Vst3Bridge::run() { [&](YaPlugView::GetSize& request) -> YaPlugView::GetSize::Response { // Melda plugins will refuse to open dialogs of this function is // not run from the GUI thread + Steinberg::ViewRect size{}; const tresult result = do_mutual_recursion_or_handle_in_main_context( [&]() { return object_instances[request.owner_instance_id] - .plug_view_instance->plug_view->getSize( - &request.size); + .plug_view_instance->plug_view->getSize(&size); }); - return YaPlugView::GetSizeResponse{ - .result = result, .updated_size = std::move(request.size)}; + return YaPlugView::GetSizeResponse{.result = result, + .size = std::move(size)}; }, [&](YaPlugView::OnSize& request) -> YaPlugView::OnSize::Response { // HACK: This function has to be run from the UI thread since