components/viz will consist of the following layers:
frame_sinks:
where CompositorFrames (and later ContentFrames) are received.
Includes: FrameSinkManager, CompositorFrameSinkSupport.
surfaces:
layer beneath frame_sinks where CompositorFrames are stored. Also responsible for aggregation, occlusion, synchronization.
Includes: Surface, SurfaceDependencyTracker, SurfaceManager
display_compositor:
layer beneath surfaces that takes a CompositorFrame and draws it
Includes: DirectRenderer, GLRenderer, OutputSurface, etc.
A layer above can know about the layer below, but not vice versa.
In other words, FrameSinkManager can know about SurfaceManager but a SurfaceManager should not know about BeginFrames and FrameSinks.
I think one way to make progress on this layering is to invert the relationship between SurfaceManager and FrameSinkManager.
Currently SurfaceManager has a FrameSinkManager. We should instead have FrameSinkManager have a SurfaceManager.
I'm not sure about "hit_test"'s layering.
components/viz will consist of the following layers:
frame_sinks:
where CompositorFrames (and later ContentFrames) are received.
Includes: FrameSinkManager, CompositorFrameSinkSupport.
surfaces:
layer beneath frame_sinks where CompositorFrames are stored. Also responsible for aggregation, occlusion, synchronization.
Includes: Surface, SurfaceDependencyTracker, SurfaceManager
display_compositor:
layer beneath surfaces that takes a CompositorFrame and draws it
Includes: DirectRenderer, GLRenderer, OutputSurface, etc.
A layer above can know about the layer below, but not vice versa.
In other words, FrameSinkManager can know about SurfaceManager but a SurfaceManager should not know about BeginFrames and FrameSinks.
I think one way to make progress on this layering is to invert the relationship between SurfaceManager and FrameSinkManager.
Currently SurfaceManager has a FrameSinkManager. We should instead have FrameSinkManager have a SurfaceManager.
I'm not sure about "hit_test"'s layering.
Planning spreadsheet: https://docs.google.com/spreadsheets/d/1buIcuS-lgM1eIYChOrBEAo0BdlIkb7p1TF58L2kBAAg/edit#gid=0