diff options
| author | 2019-09-08 22:07:47 -0700 | |
|---|---|---|
| committer | 2019-09-08 22:07:47 -0700 | |
| commit | 76cc73e91c8be1be49ca7264d21178b0c60ccec8 (patch) | |
| tree | 0a7fa5c19d5d29d40aab5181e0ee02e4f73f0362 /services/surfaceflinger/BufferLayerConsumer.cpp | |
| parent | b9a4f9efdd42eaaf495b9433db2fc5db3a813b94 (diff) | |
| parent | 5d5329644df97df2718a63c29345fdc17a75b9b5 (diff) | |
Merge qt-r1-dev-plus-aosp-without-vendor (5817612) into stage-aosp-master
Bug: 135460123
Change-Id: I02a643052e3023ac029cdec76ee24dfa99d82b29
Merged-In: Ied9a812f235e2a5146381b0ac8c602db1c6035f5
Diffstat (limited to 'services/surfaceflinger/BufferLayerConsumer.cpp')
| -rw-r--r-- | services/surfaceflinger/BufferLayerConsumer.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/services/surfaceflinger/BufferLayerConsumer.cpp b/services/surfaceflinger/BufferLayerConsumer.cpp index 6709fb4b48..414814a6f4 100644 --- a/services/surfaceflinger/BufferLayerConsumer.cpp +++ b/services/surfaceflinger/BufferLayerConsumer.cpp @@ -369,6 +369,15 @@ const Region& BufferLayerConsumer::getSurfaceDamage() const { return mCurrentSurfaceDamage; } +void BufferLayerConsumer::mergeSurfaceDamage(const Region& damage) { + if (damage.bounds() == Rect::INVALID_RECT || + mCurrentSurfaceDamage.bounds() == Rect::INVALID_RECT) { + mCurrentSurfaceDamage = Region::INVALID_REGION; + } else { + mCurrentSurfaceDamage |= damage; + } +} + int BufferLayerConsumer::getCurrentApi() const { Mutex::Autolock lock(mMutex); return mCurrentApi; @@ -485,7 +494,6 @@ void BufferLayerConsumer::onBufferAvailable(const BufferItem& item) { if (oldImage == nullptr || oldImage->graphicBuffer() == nullptr || oldImage->graphicBuffer()->getId() != item.mGraphicBuffer->getId()) { mImages[item.mSlot] = std::make_shared<Image>(item.mGraphicBuffer, mRE); - mRE.cacheExternalTextureBuffer(item.mGraphicBuffer); } } } @@ -522,6 +530,12 @@ void BufferLayerConsumer::dumpLocked(String8& result, const char* prefix) const ConsumerBase::dumpLocked(result, prefix); } +BufferLayerConsumer::Image::Image(const sp<GraphicBuffer>& graphicBuffer, + renderengine::RenderEngine& engine) + : mGraphicBuffer(graphicBuffer), mRE(engine) { + mRE.cacheExternalTextureBuffer(mGraphicBuffer); +} + BufferLayerConsumer::Image::~Image() { if (mGraphicBuffer != nullptr) { ALOGV("Destroying buffer: %" PRId64, mGraphicBuffer->getId()); |