diff options
| -rw-r--r-- | libs/gui/BLASTBufferQueue.cpp | 8 | ||||
| -rw-r--r-- | libs/gui/include/gui/BLASTBufferQueue.h | 1 |
2 files changed, 9 insertions, 0 deletions
diff --git a/libs/gui/BLASTBufferQueue.cpp b/libs/gui/BLASTBufferQueue.cpp index aeb237deb4..7ce72ffa59 100644 --- a/libs/gui/BLASTBufferQueue.cpp +++ b/libs/gui/BLASTBufferQueue.cpp @@ -842,6 +842,14 @@ void BLASTBufferQueue::mergePendingTransactions(SurfaceComposerClient::Transacti mPendingTransactions.end()); } +SurfaceComposerClient::Transaction* BLASTBufferQueue::gatherPendingTransactions( + uint64_t frameNumber) { + std::lock_guard _lock{mMutex}; + SurfaceComposerClient::Transaction* t = new SurfaceComposerClient::Transaction(); + mergePendingTransactions(t, frameNumber); + return t; +} + // Maintains a single worker thread per process that services a list of runnables. class AsyncWorker : public Singleton<AsyncWorker> { private: diff --git a/libs/gui/include/gui/BLASTBufferQueue.h b/libs/gui/include/gui/BLASTBufferQueue.h index f77cfe6a69..1ed592b506 100644 --- a/libs/gui/include/gui/BLASTBufferQueue.h +++ b/libs/gui/include/gui/BLASTBufferQueue.h @@ -98,6 +98,7 @@ public: void setSyncTransaction(SurfaceComposerClient::Transaction* t, bool acquireSingleBuffer = true); void mergeWithNextTransaction(SurfaceComposerClient::Transaction* t, uint64_t frameNumber); void applyPendingTransactions(uint64_t frameNumber); + SurfaceComposerClient::Transaction* gatherPendingTransactions(uint64_t frameNumber); void update(const sp<SurfaceControl>& surface, uint32_t width, uint32_t height, int32_t format, SurfaceComposerClient::Transaction* outTransaction = nullptr); |