summaryrefslogtreecommitdiff
path: root/libs/gui/BLASTBufferQueue.cpp
diff options
context:
space:
mode:
author Chavi Weingarten <chaviw@google.com> 2021-02-05 17:05:06 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-02-05 17:05:06 +0000
commitafbe774235a718c542a27197a5a8227f0c78b7cd (patch)
treeb77034b0034ce4bcd1c15d529d7d8b2d8a188cf2 /libs/gui/BLASTBufferQueue.cpp
parent93d860a9a7b11109456c3fe5cb0d574b56f7f76d (diff)
parent497e81c9fb9d955391678bbf0776b75d397e9ad9 (diff)
Merge "Convert certain format types to another buffer format." into sc-dev
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