| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| package org.chromium.content.browser; |
| |
| public abstract class VSyncManager { |
| /** |
| * Interface for requesting notification of the display vsync signal. The provider will call |
| * Listener.onVSync() to notify about vsync. The number of registrations and unregistrations of |
| * a given listener must be balanced. |
| */ |
| public static interface Provider { |
| void registerVSyncListener(Listener listener); |
| void unregisterVSyncListener(Listener listener); |
| } |
| |
| /** |
| * Interface for receiving vsync notifications and information about the display refresh |
| * interval. |
| */ |
| public static interface Listener { |
| /** |
| * Notification of a vsync event. |
| * @param frameTimeMicros The latest vsync frame time in microseconds. |
| */ |
| void onVSync(long frameTimeMicros); |
| |
| /** |
| * Update with the latest vsync parameters. |
| * @param tickTimeMicros The latest vsync tick time in microseconds. |
| * @param intervalMicros The vsync interval in microseconds. |
| */ |
| void updateVSync(long tickTimeMicros, long intervalMicros); |
| } |
| } |