vanderlokken / rust-vst-gui

An extension to the 'rust-vst' crate to create VST plugin GUIs
MIT License
41 stars 14 forks source link

Edge? #8

Open adam-hanna opened 3 years ago

adam-hanna commented 3 years ago

Hi!

Thanks for this library.

I'm new to rust and new to win32, so forgive my ignorance. My understanding is that this lib is using IE rather than Edge?

I think it would be beneficial to migrate to the chromium powered Edge browser and away from IE. It looks like win32 has support for this, here.

I found a crate that may be helpful, here.

I'm working on a fork, myself. If I can manage, I should have a PR, shortly.

Thanks in advance for you input!

vanderlokken commented 3 years ago

Hi! You can take a look at the branch called "edge": https://github.com/vanderlokken/rust-vst-gui/tree/edge A couple of years ago I attempted to get this stuff working. As far as I remember it was partially usable, but something was not OK. Maybe some concurrency issues, not sure.

adam-hanna commented 3 years ago

Hi! You can take a look at the branch called "edge": https://github.com/vanderlokken/rust-vst-gui/tree/edge A couple of years ago I attempted to get this stuff working. As far as I remember it was partially usable, but something was not OK. Maybe some concurrency issues, not sure.

Thanks!! Will do!

adam-hanna commented 3 years ago

Dumb question, would a package like the below help with cross-platform support?

https://github.com/Boscop/web-view

vanderlokken commented 3 years ago

Dumb question, would a package like the below help with cross-platform support?

https://github.com/Boscop/web-view

I don't think so. It looks like this crate doesn't support embedding webviews into externally created and managed parent windows. Which is, I believe, a mandatory requirement for VST plugin windows.

adam-hanna commented 3 years ago

Dumb question, would a package like the below help with cross-platform support? https://github.com/Boscop/web-view

I don't think so. It looks like this crate doesn't support embedding webviews into externally created and managed parent windows. Which is, I believe, a mandatory requirement for VST plugin windows.

Did a very quick and dirty proof of concept. Seems to have (maybe?) worked? I'll keep plugging away.

https://github.com/adam-hanna/rust-vst-gui/blob/2e4c1ac6ba677c5fbf96d0a8839203ab1c24f44c/src/lib.rs#L61

image

Boscop commented 3 years ago

Did a very quick and dirty proof of concept. Seems to have (maybe?) worked? I'll keep plugging away.

It opens the window as a standalone window. ZynAddSubFX also did this for a long time, because it was using FLTK which didn't support creating child windows. So yeah, it can work to some degree but it's not the "correct" way to do it: https://www.kvraudio.com/forum/viewtopic.php?p=1064317&sid=7dc723a00171baf6e4868d0dc4843b29#p1064317 When I used the old ZynAddSubFX version that did this, sometimes the window would get behind the host window and it was a suboptimal experience (also because it had multiple separate windows and overall bad UX design. The latest version has a better UI).

adam-hanna commented 3 years ago

Hmm, ok.

Maybe I'll open an issue with them to discuss adding a new feature for opening a window under a parent.

adam-hanna commented 3 years ago

Started a discussion...

https://github.com/Boscop/web-view/issues/283