compositing: Split out Painter from IOCompositor#40264
Conversation
|
🔨 Triggering try run (#18906838540) for Linux (WPT) |
|
Test results for linux-wpt from try job (#18906838540): Flaky unexpected result (24)
Stable unexpected results that are known to be intermittent (22)
|
|
✨ Try run (#18906838540) succeeded. |
|
Awesome work! |
The plan is to remove the concept of painting order entirely. In the future, when two |
a9a42f2 to
c09893f
Compare
c09893f to
373862e
Compare
This change splits `IOCompositor` into two structs: `IOCompositor` and `Painter`. The idea is that `Painter` will be per-`RenderingContext`. Currently there is only one, but when there is more than one there will be one `Painter` per-`RenderingContext`. Therefore, everything that we suspect will be managed this way is moved to `Painter`. In addition, to avoid the risk of double-borrows, `WebViewRender` no longer keeps a reference to any of the containing structs. Instead necessary things are passed down when necessary or stored internally. Co-authored-by: Mukilan Thiyagarajan <[email protected]> Signed-off-by: Martin Robinson <[email protected]>
373862e to
b1bb7d3
Compare
Also clean up the code and remove unnecesary borrow in the `Painter::render` method. This was missed during code review of servo#40264. Signed-off-by: Mukilan Thiyagarajan <[email protected]>
…40302) Also clean up the code and remove unnecesary borrow in the `Painter::render` method. This was missed during code review of #40264. Testing: No testing. This is just a small code cleanup. Signed-off-by: Mukilan Thiyagarajan <[email protected]>
This change splits
IOCompositorinto two structs:IOCompositorandPainter. The idea is thatPainterwill be per-RenderingContext.Currently there is only one, but when there is more than one there will
be one
Painterper-RenderingContext. Therefore, everything that wesuspect will be managed this way is moved to
Painter.In addition, to avoid the risk of double-borrows,
WebViewRendernolonger keeps a reference to any of the containing structs. Instead
necessary things are passed down when necessary or stored internally.
Testing: This should not change behavior and is thus covered by existing
tests.
Fixes: This is part of #40261.