| // Copyright 2019 The Fuchsia Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 | library fuchsia.accessibility; | 
 |  | 
 | /// Exposes a privileged magnifier API for camera control, typically on a | 
 | /// `fuchsia.ui.policy.Presentation`. | 
 | protocol MagnificationHandler { | 
 |     /// Sets clip-space x-offset, y-offset, and scale for the presentation. | 
 |     /// x and y are in Vulkan NDC and are applied after scaling, which occurs | 
 |     /// about the center of the presentation. The callback indicates when the | 
 |     /// update has been presented. The identity transform (0, 0, 1) is the | 
 |     /// natural state. | 
 |     SetClipSpaceTransform(struct { | 
 |         x float32; | 
 |         y float32; | 
 |         scale float32; | 
 |     }) -> (); | 
 | }; | 
 |  | 
 | @discoverable | 
 | protocol Magnifier { | 
 |     /// Registers the camera control to be used for applying magnification. If | 
 |     /// a previous handler had been registered, that handler is dropped. | 
 |     RegisterHandler(resource struct { | 
 |         handler client_end:MagnificationHandler; | 
 |     }); | 
 | }; |