Changes

Jump to: navigation, search

Platform/GFX/APZ

5 bytes added, 18:38, 4 November 2013
AsyncPanZoomControllers
== AsyncPanZoomControllers ==
Inside the APZ module, every scrollable layer has an [https://mxr.mozilla.org/mozilla-central/source/gfx/layers/ipc/AsyncPanZoomController.h AsyncPanZoomController] (APZC). Scrollable layers roughly correspond to the root document, documents in iframes, and overflow:scroll divselements. See [[Platform/GFX/OffMainThreadCompositing|OMTC]] for more information about layers.
The APZCs are arranged in a tree whose structure reflects the structure of the layer tree containing the layers that they correspond to, except that the APZC tree only has nodes for scrollable layers, while the layer tree has nodes for all layers. The APZC tree is managed by a class called [https://mxr.mozilla.org/mozilla-central/source/gfx/layers/composite/APZCTreeManager.h APZCTreeManager]. The APZCTreeManager is the interface through which the outside world interacts with the APZ module - there is no access to the APZCs directly, but the APZCTreeManage APZCTreeManager provides methods that operate on a specific APZC in the tree.
These methods identify an APZC using three integer identifiers, grouped in a structure called '''ScrollableLayerGuid'''. The three identifiers are:
# A '''layers id''', which identifies the layer tree that the scrollable layer belongs to. Layers ids are usually maintained by the widget code (e.g. RenderFrameParent::mLayersId, MetroWidget::mRootLayerTreeId).
Confirm
586
edits

Navigation menu