I recently became aware that my CSTrueColors module which can be used for full dynamic system color support on macOS does not work anymore. (None of my customers told me, so I think it did not cause much harm).
In investigating this, I found that my attempts to set the CGColor representation of a NSColor as fill color for a Xojo picture graphics object do not work anymore. I tried every possible approach, but a direct CGContextFillRect command does only result NOT in a black square if I use Xojo’s graphics‘ ForeColor property. Which is quite sad because to avoid the usual quality loss in color conversion, I used to draw the color with CGContext into a buffered Xojo picture and read it from its RGBSurface which resulted in much better Xojo Colors than the mathematical approach.
I found higher level API calls to be still working and can use AppKit’s NSRectFill to draw the color into a canvas graphics object (phew), but trying the same with a Xojo picture’s graphics handle resulted in a black picture. I can declare a NSImage and use NSRectFill to draw the color Into it, but the conversion to a Xojo picture via TiffRepresentation is as bad as the mathematical approach. And quite expensive.
So I wonder: Has something changed in the way Xojo handles CGContext properties? Or was it Apple again? Or – although I swear the same code worked before – even me who failed?