scene optimizations
Supersedes: !3488 (closed)
Closes: #3144 (closed)
Based on: !3509 (merged)
The set of optimizations implemented by this series:
- Only parts of the scene node that are visible will only get damaged.
- While rendering, only the visible parts of the nodes will actually be rendered. Everything else will be culled.
- output enter/leave events are based on a node's visibility.
- frame done events are only sent for visible nodes.
- Direct scan out will ignore invisible nodes above a proper candidate and all stuff below it if that candidate is opaque or its background is explicitly black through a rect for example.
Edited by Alexander Orzechowski