Always handle IPlugView::onSize() from UI thread

This requires a super hacky workaround because the UI thread can be
currently blocked by the plugin calling `IPlugFrame::resizeView()` from
the Win32 message loop.
This commit is contained in:
Robbert van der Helm
2020-12-22 17:36:30 +01:00
parent 9ee7982591
commit 3beaaf2312
4 changed files with 167 additions and 11 deletions
+10
View File
@@ -25,6 +25,9 @@
#include "../editor.h"
#include "common.h"
// Forward declarations
class Vst3PlugFrameProxyImpl;
/**
* A holder for plugin object instance created from the factory. This stores all
* relevant interface smart pointers to that object so we can handle control
@@ -72,6 +75,13 @@ struct InstanceInterfaces {
*/
Steinberg::IPtr<Vst3PlugFrameProxy> plug_frame_proxy;
/**
* An unmanaged raw pointer for the actual implementation behind
* `plug_frame_proxy`. This is needed for some special handling for
* `IPlugView::onSize()`.
*/
Vst3PlugFrameProxyImpl* plug_frame_proxy_impl;
/**
* The base object we cast from.
*/