diff options
author | 2022-02-01 14:51:34 -0800 | |
---|---|---|
committer | 2022-02-07 13:53:34 -0800 | |
commit | ef2e21fa7cdd37dbca56f98da49c5406ae7414d2 (patch) | |
tree | 340fe04b46a6a22c4e1147325a6c3acff34dca86 /libs/gui/DisplayEventReceiver.cpp | |
parent | f16da3cb8f2f0517821bb7d121f380f6b3da01d3 (diff) |
Add method to get current vsync from sf directly.
Bug: 205721584
Test: atest libsurfaceflinger_unittest
Test: atest DisplayEventReceiverTest
Change-Id: I38d4bd20bc2f2ad7ff964c3d613c28919478c0fc
Diffstat (limited to 'libs/gui/DisplayEventReceiver.cpp')
-rw-r--r-- | libs/gui/DisplayEventReceiver.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/gui/DisplayEventReceiver.cpp b/libs/gui/DisplayEventReceiver.cpp index b916e48f79..36e7d80d5e 100644 --- a/libs/gui/DisplayEventReceiver.cpp +++ b/libs/gui/DisplayEventReceiver.cpp @@ -20,6 +20,7 @@ #include <gui/DisplayEventReceiver.h> #include <gui/ISurfaceComposer.h> +#include <gui/VsyncEventData.h> #include <private/gui/ComposerService.h> @@ -79,6 +80,20 @@ status_t DisplayEventReceiver::requestNextVsync() { return NO_INIT; } +status_t DisplayEventReceiver::getLatestVsyncEventData(VsyncEventData* outVsyncEventData) const { + if (mEventConnection != nullptr) { + VsyncEventData vsyncEventData; + auto status = mEventConnection->getLatestVsyncEventData(&vsyncEventData); + if (!status.isOk()) { + ALOGE("Failed to get latest vsync event data: %s", status.exceptionMessage().c_str()); + return status.transactionError(); + } + *outVsyncEventData = vsyncEventData; + return NO_ERROR; + } + return NO_INIT; +} + ssize_t DisplayEventReceiver::getEvents(DisplayEventReceiver::Event* events, size_t count) { return DisplayEventReceiver::getEvents(mDataChannel.get(), events, count); |