Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 73e09c3a authored by Alec Mouri's avatar Alec Mouri
Browse files

ProjectionSpace fixes for caching:

* When feeding back into client composition, feed back the framebuffer
projection space instead of a projection space using mBounds as the
content rectangle. Otherwise, this tries to project the entire cached
set onto the entirety of the display, which is incorrect. Instead, the
cached set needs to be projected onto the displayFrame for the
overridden layer.
* When rendering the cached set and computing the physicalDisplay
rectangle, instead of passing in the framebuffer space bounds offset by
mBounds, pass in the framebuffer space content offset by mBounds.
Otherwise, this breaks simulated secondary displays: simulated secondary
displays works by projecting the layer stack onto a rectangle in the
middle of surface that is much narrower than the surface bounds. If the
framebuffer bounds are used to compute the physicalDisplay rectangle and
the cached set covers the entire secondary display, then when offset by
mBounds the cached set goes offscreen. The correct rectangle to use is
the framebuffer content rectangle.

Bug: 185398025
Test: libcompositionengine_test
Test: Simulated secondary displays
Test: Wallpaper picker doesn't suddenly resize when pulling down the
notification shade

Change-Id: Ie7119bc42db4887b448673c0ab11fee24db664c5
parent 9d533913
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment