Reaper uses an undocumented version 0 of the fxbank struct, this could
be handled by JUCE but instead this solution switches to using methods
provided by the VST3 SDK to save and load VST2 states. This also has
the added benefit of no longer requiring the VST2 SDK to build a VST3
plugin that supports saving and loading VST2 states.
Previously, this function didn't store/copy the provided bitmap, so the
resulting image was blank. This also broke createSnapshot(), which would
always return a blank image.
The docs for WS_MINIMIZEBOX and WS_MAXIMIZEBOX specify that WS_SYSMENU must be specified.
The docs for WS_SYSMENU specify that WS_CAPTION must be specified.
This change also moves the startFrame and endFrame calls out of the
plain Direct2DImageContext and into a special-purpose "flushing" context
that is private to Direct2DPixelData.
From Windows 10 onwards, the window under the mouse will receive
WM_MOUSEWHEEL messages regardless of focus state, so this hook appears
to be unnecessary.
The handling of two state variables had to be adjusted. One is
responsible for signalling that we navigated to a blank page due to the
WebBrowserComponent becoming invisible. The other variable in the
WebView2 implementation stores the URL that we should be navigating to
once the WebView2 instance has been created.
Prior to this commit navigating to the URL requested by goToURL could
fail for two reasons: either because it was called before the underlying
WebView2 instance was created, or because the WebBrowserComponent was
not yet visible.
The implementation follows Valimaki: Oscillator and Filter Algorithms
for Virtual Analog Synthesis (2006). Unlike the other modes, the BPF12
coefficients contained a typo, and had different properties to the other
modes.
We are ignoring warning 4324, which warns us that a FixedSizeFunction<4>
will have it's size increased to 8 bytes, due to the minimum alignment
requirement of 8 bytes.