GNOME Bugzilla – Bug 665507
Pixmap via cairo DIB breaks gdk_gc_set_stipple() use
Last modified: 2014-03-16 13:07:23 UTC
Dia master has code to render partially transparent colors. There is an emulation with stipple drawing for the Gdk renderer. That does not draw anything anymore with the restricted pixmaps of the recent commit http://git.gnome.org/browse/gtk+/commit/?id=2ae574ab There is probably a better way than just reverting the above commit, but ATM it fixes the issue for me.
Is your cairo built with the patches from https://bugs.freedesktop.org/show_bug.cgi?id=42739 and https://bugs.freedesktop.org/show_bug.cgi?id=42821 ? If it helps, http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/cairo_1.10.2-2_win32.zip was built with these included.
Created attachment 217115 [details] Dai master alpha simulation working with gtk-2-22 I've finally got around patching cairo 1.10 from yesterday but this bug is still there. Your version does not work for me as a drop-in replacement due to all it's (IMHO superfluous) dependencies: fontconfig, freetype ... Current cairo 1.12 is including the above mentioned patches, but does not work on win32, yet. [1] To give you an impression of what is missing I've attached a screenshot of Dia master showing included render-test.dia. The three (red, green, blue) colored circles are simply not drawn with gtk-2-24. Also there are complaints on the console, e.g.: (dia.exe:1196): Gdk-WARNING **: gdkdrawable-win32.c:698: SelectObject failed: Der Vorgang wurde erfolgreich beendet. (dia.exe:1196): Gdk-WARNING **: gdkdrawable-win32.c:711: MaskBlt failed: Der Vorgang wurde erfolgreich beendet. IIRC the console message are new and may not be related. With gtk-2-22 Dia works as intended. [1] http://lists.cairographics.org/archives/cairo/2012-June/023272.html
Created attachment 226589 [details] [review] 0001-Bug-665507-Pixmap-via-cairo-DIB-breaks-gdk_gc_set_st.patch Proposed patch attached (reasoning below) Only one bitmap can be selected into a device context. Using the DIB created by cairo consumes the one opportunity, so every further SelectObject into the same DC in GDK code will fail.
Pushed fix to gtk-2-24: https://git.gnome.org/browse/gtk+/commit/?h=gtk-2-24&id=6d329406ae6adf8aca964998fdddf0251aab32b6