| // Copyright 2025 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.ui.display.singleton; |
| |
| using zx; |
| |
| @available(added=HEAD) |
| @discoverable |
| closed protocol VsyncSource { |
| /// Enables or disables receiving `OnVsync` for the given display. |
| /// |
| /// The client receives `OnVsync` callbacks iff this function is called with `enabled=true`. |
| /// Calling this with `enabled=false` stops generating callbacks. Note that there may be a |
| /// race with a server receiving this and extra `OnVsync` may be received. |
| /// |
| /// By default, the listener is assumed to have called `enabled=false`. |
| strict SetVsyncEnabled(struct { |
| enabled bool; |
| }); |
| |
| /// Notifies the client that a vsync event has occurred. |
| strict -> OnVsync(struct { |
| /// The time when the VSync occurred. |
| /// |
| /// The accuracy of this timestamp depends on the display hardware. |
| timestamp zx.Time; |
| }); |
| }; |