While debugging an issue with GTK+ on quartz I think I ran into a bug. The problem is that drawing with a surface as source into a context, when the context is translated, seems to offset the source. I will attach a test case and a screenshot. The same code works on X11 (I have taked it from GTK+, the color selector code and simplified it a bit). The problem appears both on 1.4.x and 1.5.x.
Created attachment 12322 [details] Test case
Created attachment 12323 [details] Screenshot The screenshot shows the example with and without the translate call.
I've heard that this is working fine with 1.4.4, but not 1.4.10 or 1.5.x.
Created attachment 12920 [details] alternate test case Had a look at this, hacked your test case into the rel-path test and minimizing a bit further. Interestingly it seems that the test works correctly (quartz=image) when the stroke is changed to a fill, points to a bug in the stroke code with DO_IMAGE path (which was new in the timeframe you mention). I think what's going on is that the stroke_transform and the sourceImageTransform are both being applied and they both contain the ctm. I'll see if I can come up with a fix.
This was fixed by: commit ae143d779ba5765f55754cb89af87b065d84ef04 Author: Vladimir Vukicevic <vladimir@pobox.com> Date: Tue Mar 25 11:17:57 2008 -0700 [quartz] When stroking with an image source, use the right CTM for the image Since the CTM was modified for the stroke transform, we need to reset it before calling ConcatCTM for the source transform.
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.