Description
The Layer::Diff
method maintains tree state to perform its work. The other 2 recursion methods Layer::Preroll
and Layer::Paint
were recently modified to use a new LayerStateStack
mechanism to manage their state as they recurse through a layer tree. The Diff method tracks state similarly, but doesn't necessarily use all of the mechanisms that the LayerStateStack object provides. Minimally, though, it tracks transform and clip which can now be maintained via the DisplayListMatrixClipTracker object which provides better support for 4x4 matrices and difference clipping.
Diff should minimally use at least DisplayListMatrixClipTracker for better (and future-proofed) clip/matrix tracking, and look at the full LayerStateStack to see if it provides needed functionality with minimal overhead so that all 3 recursion methods have essentially consistent, if not identical, state management code in them.