<div dir="ltr">Hi,<div><br></div><div>I'm improving the Linux port of the u-he plugins (<a href="http://www.u-he.com">www.u-he.com</a>) and I was using Xlib before but I've switched to xcb now, and I'm using cairo-xcb instead of cairo-xlib for the painting.</div><div><br></div><div>While using the cairo-xcb backend I've come across the following assertion:</div><div><br></div><div>cairo-xcb-screen.c:219: _get_screen_index: Assertion `!"reached"' failed.</div><div><br></div><div>I've looked at the source code and I was surprised to see that the cairo-xcb backend has global variables (mutex, list of cairo_xcb_connection, ...), and I wonder if this is the issue in my case.</div><div><br></div><div>The application I'm working on is a software synthesizer plugin (VST2/VST3) which a Digital Audio Workstation like Bitwig Studio (<a href="http://www.bitwig.com">www.bitwig.com</a>) can use and display.</div><div><br></div><div>The DAW loads the plugins, can show the plugin window (using XEmbed), hide or close the plugin window. In case the plugin window is closed I close my xcb connection, free my FT library handle and destroy my cairo xcb surface.</div><div><br></div><div>So if the window is shown/closed/shown/closed/... it will initialize and destroy xcb+FT+cairo_xcb_surface for each of them.</div><div><br></div><div>And I wonder if this is the issue: cairo_xcb seems to not work properly in such scenario.</div><div><br></div><div>Do you have any experience or ideas to share?</div><div><br></div><div>I've been testing on Archlinux, with cairo-1.15.8-2</div><div><br></div><div>Regards,</div><div>-- <br><div class="gmail_signature">Alexandre Bique</div>
</div></div>