| // 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; |
| }); |
| }; |