Closed
Bug 1064479
Opened 10 years ago
Closed 10 years ago
Redo how screen rotation is implemented on B2G/Layers
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
People
(Reporter: jrmuizel, Assigned: jrmuizel)
References
Details
Attachments
(2 files, 1 obsolete file)
(deleted),
patch
|
nical
:
review+
mattwoodrow
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
bajaj
:
approval-mozilla-aurora+
|
Details | Diff | Splinter Review |
Currently we use a world transform on the LayerManager. This gets passed to the screen render target which adjusts the gl transform to accomplish the rotation. This causes a lot of the system to have to know about the transform.
Instead we can just bake the transform into the root layer's shadow transform. Everything now mostly just works.
Assignee | ||
Comment 1•10 years ago
|
||
Assignee: nobody → jmuizelaar
Assignee | ||
Comment 2•10 years ago
|
||
This patch shows the simplication that this approach allows. It will also fix bug 1057461
Assignee | ||
Comment 3•10 years ago
|
||
Attachment #8485952 -
Attachment is obsolete: true
Assignee | ||
Updated•10 years ago
|
Summary: Redo how screen rotation is implemented on B2G → Redo how screen rotation is implemented on B2G/Layers
Assignee | ||
Comment 4•10 years ago
|
||
Comment on attachment 8485922 [details] [diff] [review]
Rough out an implementation
Review of attachment 8485922 [details] [diff] [review]:
-----------------------------------------------------------------
The main part of this change is:
::: gfx/layers/composite/AsyncCompositionManager.cpp
@@ +126,2 @@
> ComputeTransformForRotation(mTargetConfig.naturalBounds(),
> + mTargetConfig.rotation());
Store the world transform on the AsyncCompositionManager instead of the layer manager.
@@ +980,5 @@
> + LayerComposite* rootComposite = root->AsLayerComposite();
> +
> + gfx::Matrix4x4 trans = rootComposite->GetShadowTransform();
> + trans *= gfx::Matrix4x4::From2D(mWorldTransform);
> + rootComposite->SetShadowTransform(trans);
This is the main part of this change.
::: gfx/layers/ipc/CompositorParent.cpp
@@ +800,5 @@
>
> // Instruct the LayerManager to update its render bounds now. Since all the orientation
> // change, dimension change would be done at the stage, update the size here is free of
> // race condition.
> + mLayerManager->UpdateRenderBounds(aTargetConfig.naturalBounds());
Set the render bounds to the natural bounds instead of the client bounds so that we don't have to unrotate them in CompositorOGL.
Attachment #8485922 -
Flags: review?(nical.bugzilla)
Attachment #8485922 -
Flags: review?(matt.woodrow)
Comment 5•10 years ago
|
||
Comment on attachment 8485922 [details] [diff] [review]
Rough out an implementation
Review of attachment 8485922 [details] [diff] [review]:
-----------------------------------------------------------------
A nice simplification.
Attachment #8485922 -
Flags: review?(matt.woodrow) → review+
Updated•10 years ago
|
Attachment #8485922 -
Flags: review?(nical.bugzilla) → review+
Comment 6•10 years ago
|
||
This is the solution to bug 1057461, making it 2.1+
blocking-b2g: --- → 2.1+
Assignee | ||
Comment 7•10 years ago
|
||
Comment 8•10 years ago
|
||
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla35
Comment 9•10 years ago
|
||
Actually, before uplifting it to 2.1, could we check whether it's not causing Bug 1066664? The image I see there is quite similar to the Bug 1057461
Comment 10•10 years ago
|
||
Marking NO_UPLIFT to check to see if this caused the fallout in bug 1066664.
Jeff - Can you find out if this caused bug 1066664?
Flags: needinfo?(jmuizelaar)
Whiteboard: [NO_UPLIFT]
Updated•10 years ago
|
status-b2g-v2.1:
--- → affected
status-b2g-v2.2:
--- → fixed
status-firefox33:
--- → wontfix
status-firefox34:
--- → affected
status-firefox35:
--- → fixed
Updated•10 years ago
|
Flags: needinfo?(jmuizelaar)
Comment 11•10 years ago
|
||
Clearing NO_UPLIFT flag since Bug 1066664 landed in master. This should land in 2.1 with Bug 1066664
Whiteboard: [NO_UPLIFT]
Comment 12•10 years ago
|
||
Please nominate this patch for Aurora approval when you get a chance :)
Flags: needinfo?(jmuizelaar)
Comment 13•10 years ago
|
||
Comment on attachment 8485953 [details] [diff] [review]
Implementation and cleanup included together
Approval Request Comment
See the Aurora request comments on bug 1071241.
Attachment #8485953 -
Flags: approval-mozilla-aurora?
Assignee | ||
Updated•10 years ago
|
Flags: needinfo?(jmuizelaar)
Updated•10 years ago
|
Attachment #8485953 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Comment 14•10 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•