Changes

Jump to: navigation, search

Platform/GFX/APZ

330 bytes added, 01:00, 25 February 2014
no edit summary
<sub>1. This module used to be called '''Async Pan/Zoom Controller (APZC)''', but this was changed to avoid confusion because there is a class called AsyncPanZoomController of which there are now multiple instances.</sub>
 
== External Documentation ==
 
These blog posts provide some information on the various coordinate systems involved in Async Pan/Zoom transformations and also provide a bit of a general overview of what happens.
 
* [https://staktrace.com/spout/entry.php?id=800 Unraveling coordinate systems]
* [https://staktrace.com/spout/entry.php?id=801 Unraveling coordinate systems, part 2]
== Supported platforms ==
On B2G, there are not only multiple threads but also multiple processes, as each app (or in the case of the browser, each tab) has its own process. In this setup, only the parent process has a compositor thread, and all APZCs live in the parent process, even ones corresponding to layers from a child thread.
 
== Coordinate systems ==
 
APZ code needs to deal with quite a variety of coordinate systems. Here are some resources for understanding the various coordinate systems involved. They build on each other, so looking at them in order is recommended:
 
* [https://staktrace.com/spout/entry.php?id=800 Unraveling coordinate systems]
* [https://staktrace.com/spout/entry.php?id=801 Unraveling coordinate systems, part 2]
* [http://mxr.mozilla.org/mozilla-central/source/gfx/layers/composite/APZCTreeManager.cpp#900 The comment above APZCTreeManager::GetInputTransforms()]
* [https://bug935219.bugzilla.mozilla.org/attachment.cgi?id=8380975 Diagram illustrating the coordinate confusion that gave rise to bug 935219]
== Main APZ-related projects on the horizon ==
Confirm
85
edits

Navigation menu