There's currently no way that Quartz Debug can tell you what Core
Animation is drawing. CA draws like any OpenGL application into a
surface attached to your window, and Quartz Debug and the Quartz
window server will either not be told about each screen update at all
(if the surface is unoccluded by other windows) or will be told that
the entire surface was updated (most likely what you're seeing.)
The best solution is to run your program with the environment variable
CA_COLOR_FLUSH=1 set, to turn on Core Animation's own version of
"flash screen updates" for the individual parts of the window that it
redraws.
Other useful debugging options are:
CA_COLOR_NO_WAIT=1 like the "no delay after flash" option in Quartz
Debug
CA_COLOR_OPAQUE=1 shows opaque vs non-opaque regions in red and green
- minimizing "redness" is a good way to improve performance
CA_PRINT_TREE=1 logs the CA render tree to stderr every frame
John
On Oct 9, 2008, at 1:37 PM, Michael B Johnson wrote:
So I have a CALayer that has many children. As these child layers
come into the visible rect of the enclosing view, NSOperations are
fired off to load the contents of these child layers. I bundle up
the layer updates into as many operations as I have cores, and
enclose each NSOperation's work in a CATransaction blocks.
As each layer gets its new contents set (by having its delegate
property set to non-nil), I mark that layer's bounds rect dirty. My
hope was that when the view redraw, it would only have to update
that rectangle.
Unfortunately, Quart Debug with "Flash Screen Updates" on, shows
that the entire view (which is 4 megapixels) is getting updated each
time.
I've chunked the layer update transactions into groups of 10, and
I've also grouped the layers into groups (I have ~300 groups of
layers, each of which has about 300 children - where each group is a
column of layers on a grid), and nothing seems to affect the redraw.
So I have three options:
(1) I'm still doing something wrong with my dirtying logic, and
managing to dirty the whole view
(2) QuartzDebug is lying to me
(3) Core Animation doesn't work the way I think
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartz-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartz-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden