summaryrefslogtreecommitdiff
path: root/libs/gui/BLASTBufferQueue.cpp
diff options
context:
space:
mode:
author chaviw <chaviw@google.com> 2021-02-04 17:09:47 -0800
committer chaviw <chaviw@google.com> 2021-02-04 17:11:28 -0800
commit497e81c9fb9d955391678bbf0776b75d397e9ad9 (patch)
treec8500b8decb32191ea98013bd969a3d0bf38f04d /libs/gui/BLASTBufferQueue.cpp
parentc5515fccae31bcec3c9861512008e8684a0f173b (diff)
Convert certain format types to another buffer format.
Parity the code from BufferQueueLayer where it converted certain user passed formats into supported formats Test: Builds Fixes: 179066417 Change-Id: I3d9e04491ec4adbd27d5efd53e84075c762ee386
Diffstat (limited to 'libs/gui/BLASTBufferQueue.cpp')
-rw-r--r--libs/gui/BLASTBufferQueue.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/libs/gui/BLASTBufferQueue.cpp b/libs/gui/BLASTBufferQueue.cpp
index c62d9ad440..c2ec0fe078 100644
--- a/libs/gui/BLASTBufferQueue.cpp
+++ b/libs/gui/BLASTBufferQueue.cpp
@@ -142,7 +142,7 @@ BLASTBufferQueue::BLASTBufferQueue(const std::string& name, const sp<SurfaceCont
mBufferItemConsumer->setFrameAvailableListener(this);
mBufferItemConsumer->setBufferFreedListener(this);
mBufferItemConsumer->setDefaultBufferSize(mSize.width, mSize.height);
- mBufferItemConsumer->setDefaultBufferFormat(format);
+ mBufferItemConsumer->setDefaultBufferFormat(convertBufferFormat(format));
mTransformHint = mSurfaceControl->getTransformHint();
mBufferItemConsumer->setTransformHint(mTransformHint);
@@ -175,7 +175,7 @@ void BLASTBufferQueue::update(const sp<SurfaceControl>& surface, uint32_t width,
std::unique_lock _lock{mMutex};
if (mFormat != format) {
mFormat = format;
- mBufferItemConsumer->setDefaultBufferFormat(format);
+ mBufferItemConsumer->setDefaultBufferFormat(convertBufferFormat(format));
}
SurfaceComposerClient::Transaction t;
@@ -683,4 +683,18 @@ void BLASTBufferQueue::createBufferQueue(sp<IGraphicBufferProducer>* outProducer
*outConsumer = consumer;
}
+PixelFormat BLASTBufferQueue::convertBufferFormat(PixelFormat& format) {
+ PixelFormat convertedFormat = format;
+ switch (format) {
+ case PIXEL_FORMAT_TRANSPARENT:
+ case PIXEL_FORMAT_TRANSLUCENT:
+ convertedFormat = PIXEL_FORMAT_RGBA_8888;
+ break;
+ case PIXEL_FORMAT_OPAQUE:
+ convertedFormat = PIXEL_FORMAT_RGBX_8888;
+ break;
+ }
+ return convertedFormat;
+}
+
} // namespace android