Replies: 2 comments 1 reply
|
This shouldn't happen if you are using IPlugEffect.vst3 from the website - have you tested it in any other windows host? This also doesn't look like you not doing anything correctly, although it is a bit hard to tell. However, I don't see how you'd get an exception in that Find() method from PrepareAndMeasureText() because it doesn't call that. If we take it that the exception is correct then it looks like somewhere the graphics backend tries to create a bitmap that fails. The first thing to try is getting hold of a build (or making one yourself) of iPlugEffect.vst3 that uses NanoVG (which should be the default. Or if you can share your host I can try to take look? |
|
OK - I can confirm a crash with another IPlug2 plugin, but I need to do some updates on my windows system to be able to investigate further - I'll see if I can get more clarity. |
Uh oh!
There was an error while loading. Please reload this page.
I have a custom (cross-platform) host, performing very simple operations for initializing and displaying vst3s. It works well for most vst3s I've tested -- except for Vst3s based on IPlug2. On Windows, these plugins will crash every time I attempted to call IPlugView::attached(windowHandle, platform), producing a fatal memory access error which can't be caught by try-catch block by my C++ host. (On MacOS, the .dylib versions of the same vst3s display properly without issue.)
After downloading the IPlugEffect.vst3 with the associated .pdb file I've been able to trace the call stack and method that produces the error:
Exception thrown: read access violation.
iplug::igraphics::StaticStorageiplug::igraphics::APIBitmap::Accessor::Find(...) returned nullptr.
with the very last call shown on the call stack being:
IPlugEffect.vst3!iplug::igraphics::IGraphicsSkia::PrepareAndMeasureText(const iplug::igraphics::IText & text, const char * str, iplug::igraphics::IRECT & r, double & x, double & y, SkFont & font) Line 512 C++
but since that is internal to IPlug2, I'm not sure how my host can circumvent it.
My IEditController, IPlugView, IPlugFrame etc. pointers, windowHandle and platform ("HWND") are most definitely valid (work for most vsts) and even with IPlug2, the expected properties are being returned, such as setFrame(), IsPlatformSupported() and getSize(ViewRect) (correct width/height), just prior to the crash.
Yet I'm obviously failing to provide IPlug2 with some information it expects, which other vst3s are not expecting, but what might that be?
All reactions