Concerns regarding cairo-xcb backend
Alexandre Bique <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <CAP737oLsPzg1EEDgVA=76iqEo7Cv_A2-rMHwQpDh2Joz7-72Cg@mail.gmail.com> |
Hi, I'm improving the Linux port of the u-he plugins (www.u-he.com) 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. While using the cairo-xcb backend I've come across the following assertion: cairo-xcb-screen.c:219: _get_screen_index: Assertion `!"reached"' failed. 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. The application I'm working on is a software synthesizer plugin (VST2/VST3) which a Digital Audio Workstation like Bitwig Studio (www.bitwig.com) can use and display. 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. So if the window is shown/closed/shown/closed/... it will initialize and destroy xcb+FT+cairo_xcb_surface for each of them. And I wonder if this is the issue: cairo_xcb seems to not work properly in such scenario. Do you have any experience or ideas to share? I've been testing on Archlinux, with cairo-1.15.8-2 Regards, -- Alexandre Bique -- cairo mailing list [email protected] https://lists.cairographics.org/mailman/listinfo/cairo