From: james t. <ti...@ma...> - 2004-12-01 15:56:27
|
ok, ...it's an old problem, but unsolved, and even if we move to CGPaths instead of QD regions, it is key to some of our performance woes: everytime something is drawn in a window, it is invalidated and then the window and all of it's subwindow's are recursively re-examined to update their clip region...this is very slow if much is embedded in the window, and I believe it's been mentioned before that it was done because it was wholly correct (perhaps too so)... ...atm, TkMacOSXUpdateClipRgn() is only called in two places (outside of itself): XMapWindow(), and TkMacOSXSetUpClippingRgn()...this last one is called all over the place where there is drawing... ...so, thinking out loud, what are some alternatives? The only thing I've come up with is that instead of rechecking every single embedded subwindow/object top-down, we should have some mechanism for weeding out those child windows that don't intersect with the drawing: does this sound plausible? ...does anyone have other ideas, or obvious reasons why something like this wouldn't work? jamie |