Trying to run GTK+ on quartz with the clearlooks theme produces an error in the terminal, and vertical scrollbars are not drawn. I will attach a small testcase that uses the same code as clearlooks, using only cairo. The error is: <Error>: CGBitmapContextGetBitsPerPixel: invalid context and from what I can tell it's from the fallback surface code, that wants a bitmapcontext but probably gets a real context?
Created attachment 13935 [details] Minimal test case
Adding Brian to CC, hope that's OK. To clarify what the test case shows: gradient patterns cause an error as soon as there is a transformation in place.
(it's always ok to CC me on bugs, btw) At first I thought this was the problem we've seen with clearlooks on mac forever - it pushes at the things (like transparency) that require fallback. However, erroring because of the /transform/ is surprising. I'll take a dig into that over the weekend.
Thanks, let me know if you want me to test any patches or so.
Vlad, I noticed that you fixed the warning that I mention in this bug, "CGBitmapContextGetBitsPerPixel: invalid context". If I got things right, that was just a harmless warning so the actual problem here probably is caused by something else. Do you have any idea what it might be?
It was, I don't think that there's an actual error here at all. That call/path was just used to see if a certain optimization could be used. As long as the rendering is correct, this can probably be resolved as one of NOTABUG/INVALID/WORKSFORME. If the rendering isn't correct though, then we have a problem :)
Ah, I wasn't quite clear :) There is a visual error, the simple test case attached here shows it clearly, run it with and without the matrix transformation: /* This transformation seems to be what triggers the error: */ cairo_matrix_init (&matrix, 0, 1, 1, 0, 0, 0); cairo_transform (cr, &matrix); // <-- comment out this line to get it working The result is an empty window vs a black to white gradient across the whole window. Btw, I just noticed that the warning fix doesn't work: + CGContextGetTypePtr = dlsym(RTLD_DEFAULT, "CGContextGetTypePtr"); The "Ptr" part of the symbol looks like a typo.
Ah, ok! I'll take a look. Good catch on the Ptr bit, I didn't have a good testcase for the warning and was able to only trigger it sporadically through firefox. I'll fix that and take a look at the rendering error.
Just checked in a fix for this -- fb1378a24b5c6cd65b73aa611bb049ebb6f2b57a.
Awesome, thanks!
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.