The following tests all have a bunch of incorrect pixels using the image backend on my PowerBook G4 running OS X (freetype not ATSUI). These failures are not reproducable on Linux/x86, so I suspect they are more endian issues: clip-operator fill-and-stroke linear-gradient operator-clear operator-source unantialiased-shapes unbounded-operator
Created attachment 2954 [details] pixels-off.c Attached is a minimal failing test case. The problem seems to be the mask created for the path. Here is the mask on x86: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 68 c4 f5 f5 c4 68 0a 00 00 00 2b dd ff ff ff ff ff ff dd 2b 00 0a e0 ff c5 3d 0a 0a 3d c5 ff e0 0a 70 ff c2 06 00 00 00 00 06 c2 ff 70 c7 ff 3a 00 00 00 00 00 00 3a ff c7 f4 ff 0b 00 00 00 00 00 00 0b ff f4 f4 ff 0b 00 00 00 00 00 00 0b ff f4 c7 ff 3a 00 00 00 00 00 00 3a ff c7 70 ff c2 06 00 00 00 00 06 c2 ff 70 0a e0 ff c5 3d 0a 0a 3d c5 ff e0 0a 00 2b dd ff ff ff ff ff ff dd 2b 00 00 00 0a 68 c4 f5 f5 c4 68 0a 00 00 And here is the mask on PPC: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 68 c4 f5 f5 c4 68 0a 00 00 00 2b dd ff ff ff ff ff ff dd 2b 00 0a e0 ff c5 3d 0a 0a 3d c5 ff e0 0a 70 ff c2 06 00 00 00 00 06 c2 ff 70 c7 ff 3a 00 00 00 00 00 00 3a ff c7 f4 ff 0b 00 00 00 00 00 00 0b ff f4 bf 76 00 00 00 00 00 00 00 0b ca 50 c7 ff 2d 00 00 00 00 00 00 3a ff a0 70 ff c2 06 00 00 00 00 06 c2 ff 66 0a e0 ff c5 3d 0a 0a 3d c5 ff e0 0a 00 2b dd ff ff ff ff ff ff dd 2b 00 00 00 0a 68 c4 f5 f5 c4 68 0a 00 00
The list of trapezoids returned by _cairo_path_fixed_stroke_to_traps differs between my two systems.
Created attachment 2965 [details] [review] Patch The differences are due to a behaviour difference between qsort() on my two machines. The attached patch modifies the qsort vertex comparision function in cairo-hull.c to handle coincident points. This makes the output of all of the above tests equal (except for linear-gradient, which seems to also have a different problem). When this patch is applied, the output for all of those tests will also need to be updated.
2005-08-21 Billy Biggs <vektor@dumbterm.net> Fix for bug #4165: * src/cairo-hull.c: (_cairo_hull_vertex_compare): Use pointer comparison for coincident points to ensure a well-defined ordering, and avoid setting discard on both points. This fixes problems with my Mac's implementation of qsort. Final patch by Bertram Felgenhauer. * test/clip-operator-ref.png: * test/linear-gradient-ref.png: * test/operator-clear-ref.png: * test/operator-source-ref.png: * test/unantialiased-shapes-ref.png: * test/unbounded-operator-ref.png: Update reference images after the change.
Move bugs against "cvs" version to "0.9.3" so we can remove the "cvs" version.
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.