summaryrefslogtreecommitdiff
path: root/libs/gui/BufferItemConsumer.cpp
diff options
context:
space:
mode:
author Jim Shargo <jshargo@google.com> 2024-08-13 20:10:54 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-08-13 20:10:54 +0000
commit9d934309cc1dd4eb01b0cda17047f1b18cc8c9ed (patch)
treeac961006e2f63100960edaaf3e2a766661209019 /libs/gui/BufferItemConsumer.cpp
parent41aeaf82b38b76397b219f76cd1ff28d25379f3d (diff)
parentd30823a16ea4c210d96ac983d2a04bec74b2c35a (diff)
Merge "libgui: ConsumerBase-based classes now create their own BufferQueues" into main
Diffstat (limited to 'libs/gui/BufferItemConsumer.cpp')
-rw-r--r--libs/gui/BufferItemConsumer.cpp27
1 files changed, 23 insertions, 4 deletions
diff --git a/libs/gui/BufferItemConsumer.cpp b/libs/gui/BufferItemConsumer.cpp
index eeb8f196e6..bfe3d6e023 100644
--- a/libs/gui/BufferItemConsumer.cpp
+++ b/libs/gui/BufferItemConsumer.cpp
@@ -35,18 +35,37 @@
namespace android {
+#if COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
+BufferItemConsumer::BufferItemConsumer(uint64_t consumerUsage, int bufferCount,
+ bool controlledByApp, bool isConsumerSurfaceFlinger)
+ : ConsumerBase(controlledByApp, isConsumerSurfaceFlinger) {
+ initialize(consumerUsage, bufferCount);
+}
+
+BufferItemConsumer::BufferItemConsumer(const sp<IGraphicBufferProducer>& producer,
+ const sp<IGraphicBufferConsumer>& consumer,
+ uint64_t consumerUsage, int bufferCount,
+ bool controlledByApp)
+ : ConsumerBase(producer, consumer, controlledByApp) {
+ initialize(consumerUsage, bufferCount);
+}
+#endif // COM_ANDROID_GRAPHICS_LIBGUI_FLAGS(WB_CONSUMER_BASE_OWNS_BQ)
+
BufferItemConsumer::BufferItemConsumer(
const sp<IGraphicBufferConsumer>& consumer, uint64_t consumerUsage,
int bufferCount, bool controlledByApp) :
ConsumerBase(consumer, controlledByApp)
{
+ initialize(consumerUsage, bufferCount);
+}
+
+void BufferItemConsumer::initialize(uint64_t consumerUsage, int bufferCount) {
status_t err = mConsumer->setConsumerUsageBits(consumerUsage);
- LOG_ALWAYS_FATAL_IF(err != OK,
- "Failed to set consumer usage bits to %#" PRIx64, consumerUsage);
+ LOG_ALWAYS_FATAL_IF(err != OK, "Failed to set consumer usage bits to %#" PRIx64, consumerUsage);
if (bufferCount != DEFAULT_MAX_BUFFERS) {
err = mConsumer->setMaxAcquiredBufferCount(bufferCount);
- LOG_ALWAYS_FATAL_IF(err != OK,
- "Failed to set max acquired buffer count to %d", bufferCount);
+ LOG_ALWAYS_FATAL_IF(err != OK, "Failed to set max acquired buffer count to %d",
+ bufferCount);
}
}