This is the first stage of project "Support multi-screen on FxOS" (bug 1116089). Our goal here is to mirror the current content of primary display to an external display, the mirrored content should be displayed in the resolution of its connected external device. In this case, we will not create a new window, either another layer tree, but aim at enabling the 'external'(or virtual) display of hwc, and duplicating the layer list of hwc.
https://github.com/shellylin/gecko-dev/commit/19417c4af80f6244b30cd53bc96ac98be1a1fa25 This is the first prof of concept for mirroring what is displayed on the primary screen to a connected external display, leveraging the capability of hwc, without traversing our layer tree twice. However, there are still some open issues needed to be address: - The fence mechanism for this additional layer list. - Currently, when duping the layer list from primary to external, we skip the FrameBuffer layer, and take the FrameBufferTarget layer of primary to be the FrameBuffer layer of external. Append a FrameBufferTarget layer of its own at the end. However, this hack works if the primary layer list contains only one single FrameBuffer layer, we should reconsider the case where there are multiple FrameBuffer layers in the primary list.
You need to log in before you can comment on or make changes to this bug.