blob: 59d24815e4f1e886a6e727d49cf9259df2a512f0 [file] [log] [blame]
// 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`.
closed 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.
strict SetClipSpaceTransform(struct {
x float32;
y float32;
scale float32;
}) -> ();
};
@discoverable
closed protocol Magnifier {
/// Registers the camera control to be used for applying magnification. If
/// a previous handler had been registered, that handler is dropped.
strict RegisterHandler(resource struct {
handler client_end:MagnificationHandler;
});
};