3 ms·
They needed the same info to do clipping (on both the Mac and Windows). I think it is more interesting that the pipeline was invalidaterect/region => getevent
by peterfirefly 3y ago
They needed the same info to do clipping (on both the Mac and Windows).
I think it is more interesting that the pipeline was invalidaterect/region => getevent => event was a draw event => draw region (or part of it). The getevent would only generate draw events if nothing more important was going (keyboard/mouse input, timer, message from other app/desktop accessory). It would also prioritize top windows first so you would only get a draw event for a window at the bottom once the windows above had no more dirty areas.
If you really knew what you were doing, you could short circuit this a bit and draw in your windows outside of draw event handling.