Confirmed users
85
edits
No edit summary |
|||
| Line 1: | Line 1: | ||
== Introduction == | == Introduction == | ||
The '''Async Pan/Zoom module (APZ)''' | The '''Async Pan/Zoom module (APZ)'''<sup>1</sup> is a platform component that allows panning and zooming to be performed asynchronously (on the compositor thread rather than the main thead). | ||
For '''zooming''', this means that the APZ reacts to a pinch gesture immediately and instructs the compositor to scale the already-rendered layers at whatever resolution they have been rendered (so e.g. text becomes more blurry as you zoom in), and meanwhile sends a request to Gecko to re-render the content at a new resolution (with sharp text and all). | For '''zooming''', this means that the APZ reacts to a pinch gesture immediately and instructs the compositor to scale the already-rendered layers at whatever resolution they have been rendered (so e.g. text becomes more blurry as you zoom in), and meanwhile sends a request to Gecko to re-render the content at a new resolution (with sharp text and all). | ||
For '''panning''', this means that the APZ asks Gecko to render a portion of a scrollable layer, called the "display port", that's larger than the visible portion. It then reacts to a pan gesture immediately, asking the compositor to render a different portion of the displayport (or, if the displayport is not large enough to cover the new visible region, then nothing in the portions it doesn't cover), and meanwhile sends a request to Gecko to render a new displayport. (The displayport can also be used when zooming out causes more content of a scrollable layer to be shown than before.) | For '''panning''', this means that the APZ asks Gecko to render a portion of a scrollable layer, called the "display port", that's larger than the visible portion. It then reacts to a pan gesture immediately, asking the compositor to render a different portion of the displayport (or, if the displayport is not large enough to cover the new visible region, then nothing in the portions it doesn't cover), and meanwhile sends a request to Gecko to render a new displayport. (The displayport can also be used when zooming out causes more content of a scrollable layer to be shown than before.) | ||
<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> | |||
== Supported Platforms == | == Supported Platforms == | ||