Created attachment 53328 [details] [review] Fix A1 format win32 surfaces The in-memory format for a depth 1 bitmap in GDI is not the same as cairo/pixman. To convert from one to the other you need to mirror the bits in each byte. I.e. for the leftmost bit set in a 4 byte sequence pixman would use: 0x01, 0x00, 0x00, 0x00 Whereas GDI uses: 0x80, 0x00, 0x00, 0x00 This means the DIB bits in the win32 surface are not right in the CAIRO_FORMAT_A1 case. I'm attaching a patch that fixes this by skipping some optimization in this case and converting things when needed. This was originally discovered inh Gtk+ on win32, see https://bugzilla.gnome.org/show_bug.cgi?id=653653 for the bug report.
commit ae3319890eacd1c8282ca6df7b263ac74abb5f8d Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Sun Feb 12 11:25:07 2012 +0000 win32: Rebase on the new compositor infrastructure Try and undo all the damage that has acrued over the years by plugging into the compositor pipeline. References: https://bugs.freedesktop.org/show_bug.cgi?id=42739 References: https://bugs.freedesktop.org/show_bug.cgi?id=42821 References: https://bugs.freedesktop.org/show_bug.cgi?id=33081 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.