https://bugs.winehq.org/show_bug.cgi?id=41161
Bug ID: 41161 Summary: Embedding child process' window in own window does not draw the child window properly Product: Wine Version: 1.9.16 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: wine@sagagames.de Distribution: ---
OpenMPT (https://openmpt.org/) has a plugin bridge, which can be used to run VST plugins in a separate process. However, compared to a native Windows environment (or not bridging the plugins), there is a problem when drawing the plugin UI.
The plugin UI window itself is a borderless window that belongs to the bridge process, and is then set as a child of the actual plugin window that belongs to the OpenMPT process using SetParent(...). This works just fine on Windows, but in Wine, the child window remains completely black. If parts of the child window are redrawn by the bridged process, they become visible, but as soon as a redraw for the parent window is issued (e.g. by setting the focus to it), these areas become black again.
Steps to reproduce: 1) Install OpenMPT. 2) Create a new module. 3) Open the plugin manager ("Select" button at the bottom of the created module's window) and add any VST plugin that provides its own UI (e.g. http://www.geocities.jp/daichi1969/softsynth/index.html#down) 4) Be sure the "Use Plugin Bridge" checkbox is checked (it is also fine if it is checked but greyed out) 5) Click "Put in FX01" to load the plugin. 6) Click the "Edit" button next to the "Select" button to open the plugin's UI. 7) The UI will be completely black, with child controls becoming occasionally visible if you click them.
Note that I am an OpenMPT developer, so I would be both happy with incorporating a Wine-specific fix in our codebase if there is a way to make this scenario work with Wine, or with a fix in Wine itself to make child windows from other processes work correctly.
https://bugs.winehq.org/show_bug.cgi?id=41161
Johannes wine@sagagames.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Ubuntu
https://bugs.winehq.org/show_bug.cgi?id=41161
Jens Reyer jre.winesim@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jre.winesim@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=41161
--- Comment #1 from Johannes wine@sagagames.de --- Testing with Wine 2.2, it seems like the plugin window at least shows up randomly now (though the chance is rather low), but once the parent window is redrawn, it becomes completely black again.
https://bugs.winehq.org/show_bug.cgi?id=41161
Johannes wine@sagagames.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|1.9.16 |4.7
https://bugs.winehq.org/show_bug.cgi?id=41161
Johannes wine@sagagames.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|4.7 |1.9.16
--- Comment #2 from Johannes wine@sagagames.de --- Still happens in Wine 4.7.
https://bugs.winehq.org/show_bug.cgi?id=41161
pattietreutel katyaberezyaka@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |katyaberezyaka@gmail.com