On Mar 19, 2008, at 12:40 PM, Chris Meyer wrote:
I read the tech note for 10.5 describing changes to CILinearGradient and how "for applications compiled on Mac OS X v10.4, these filters continue to behave on Mac OS X v10.5 as they did previously."
Trying to interpret this imprecise statement, I read it as "for applications compiled against the 10.4 SDK."
However, I build my application against the 10.4 SDK and run it on 10.5.2 and it turns out that it just uses the newer (10.5) behavior and my gradients are backwards. Of course if I run the same app on 10.4, it works fine.
So my question is: How can I reliably determine whether I need to reverse the arguments to CILinearGradient?
Building against 10.4 doesn't seem to work. And since I'm built against 10.4, I can't check the AppKit version (it will just report the 10.4 version). So what should I do?
I am seeing this exact same bizarre behavior on multiple frameworks throughout 10.5. Just last night I discovered part of IOKit behaving this way.
I have examples of our frameworks that, compiled on 10.4 work everywhere as expected, and compiled on 10.5, even with the proper and exactly the same 10.4u SDK settings, suddenly fail in unpredictable ways.
So far the only absolute fix I have found is to compile in 10.4. I have tried a number of various scenarios in 10.5, and just when I think I have it working - I get bus errors from IOKit. I have been wrestling with this since 10.5 went beta, years ago. Only now is it becoming clear that there are a number of issues going on, and one of the major ones is that this test that you referenced in the documentation seems to do the wrong thing for binaries built in 10.5 against the 10.4 SDK. It's also becoming clear that it's not our fault it won't work.
I have not, however, come across this documented example. If you can write a small demo app that has the same problems, you should attach it to your bug report!
Otherwise, I'm not sure what else to do. If I find anything I'll let you know!
More later,
Jack