From dbbe3854efc2ceb6e0f5c2f0991161f6b7beea39 Mon Sep 17 00:00:00 2001 From: Vishnu Nair Date: Wed, 12 Jan 2022 20:22:11 -0800 Subject: SF: Make ExternalTexture mockable Expose GraphicBuffer properties via ExternalTexture class. Within SurfaceFlinger access the buffer via this proxy interface. This allows us to inject and mock GraphicBuffers as needed. Specifically this will be used to recreate layer state from transaction traces. Test: compiles Bug: 200284593 Change-Id: I2e7f6bee28314b70eac477cfadbf9f94c4d70339 --- services/surfaceflinger/BufferLayerConsumer.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'services/surfaceflinger/BufferLayerConsumer.cpp') diff --git a/services/surfaceflinger/BufferLayerConsumer.cpp b/services/surfaceflinger/BufferLayerConsumer.cpp index c79fa1104c..9ae45fc4cb 100644 --- a/services/surfaceflinger/BufferLayerConsumer.cpp +++ b/services/surfaceflinger/BufferLayerConsumer.cpp @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -208,8 +209,9 @@ status_t BufferLayerConsumer::acquireBufferLocked(BufferItem* item, nsecs_t pres if (mImages[item->mSlot] == nullptr || mImages[item->mSlot]->getBuffer() == nullptr || mImages[item->mSlot]->getBuffer()->getId() != item->mGraphicBuffer->getId()) { mImages[item->mSlot] = std::make_shared< - renderengine::ExternalTexture>(item->mGraphicBuffer, mRE, - renderengine::ExternalTexture::Usage::READABLE); + renderengine::impl::ExternalTexture>(item->mGraphicBuffer, mRE, + renderengine::impl::ExternalTexture:: + Usage::READABLE); } } @@ -462,8 +464,9 @@ void BufferLayerConsumer::onBufferAvailable(const BufferItem& item) { if (oldImage == nullptr || oldImage->getBuffer() == nullptr || oldImage->getBuffer()->getId() != item.mGraphicBuffer->getId()) { mImages[item.mSlot] = std::make_shared< - renderengine::ExternalTexture>(item.mGraphicBuffer, mRE, - renderengine::ExternalTexture::Usage::READABLE); + renderengine::impl::ExternalTexture>(item.mGraphicBuffer, mRE, + renderengine::impl::ExternalTexture:: + Usage::READABLE); } } } -- cgit v1.2.3-59-g8ed1b