/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/** * A thread-safe way to listen to vsync notifications on Android. All methods * can be called on any thread. * Observers must keep a strong reference to the AndroidVsync instance until * they unregister themselves.
*/ class AndroidVsync final : public SupportsThreadSafeWeakPtr<AndroidVsync> { public:
MOZ_DECLARE_REFCOUNTED_TYPENAME(AndroidVsync)
static RefPtr<AndroidVsync> GetInstance();
~AndroidVsync();
class Observer { public: // Will be called on the Java UI thread. virtualvoid OnVsync(const TimeStamp& aTimeStamp) = 0; // Will be called on the Java UI thread. virtualvoid OnMaybeUpdateRefreshRate() {} // Called when the observer is unregistered, in case it wants to // manage its own lifetime. virtualvoid Dispose() {} virtual ~Observer() = default;
};
// INPUT observers are called before RENDER observers. enum ObserverType { INPUT, RENDER }; void RegisterObserver(Observer* aObserver, ObserverType aType); void UnregisterObserver(Observer* aObserver, ObserverType aType);
void OnMaybeUpdateRefreshRate();
private: friendclass AndroidVsyncSupport;
AndroidVsync();
// Called by Java, via AndroidVsyncSupport void NotifyVsync(int64_t aFrameTimeNanos);
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.14Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.