BufferQueue: Allow returning interfaces as I*/Bn*
This adds a second createBufferQueue method that returns sp<IGraphicBuffer*> interfaces instead of sp<BnGraphicBuffer*>, since most clients don't actually need the Binderized versions (but some might). Change-Id: Iaf4f719c96ddb6f704afc75cf52be22588173e32
This commit is contained in:
parent
c9ed7d3768
commit
f522af7eb6
@ -106,14 +106,19 @@ public:
|
||||
wp<ConsumerListener> mConsumerListener;
|
||||
};
|
||||
|
||||
static void createBufferQueue(sp<BnGraphicBufferProducer>* outProducer,
|
||||
sp<BnGraphicBufferConsumer>* outConsumer,
|
||||
const sp<IGraphicBufferAlloc>& allocator = NULL);
|
||||
|
||||
// BufferQueue manages a pool of gralloc memory slots to be used by
|
||||
// producers and consumers. allocator is used to allocate all the
|
||||
// needed gralloc buffers.
|
||||
BufferQueue(const sp<IGraphicBufferAlloc>& allocator = NULL);
|
||||
|
||||
static void createBufferQueue(sp<BnGraphicBufferProducer>* outProducer,
|
||||
sp<BnGraphicBufferConsumer>* outConsumer,
|
||||
const sp<IGraphicBufferAlloc>& allocator = NULL);
|
||||
|
||||
static void createBufferQueue(sp<IGraphicBufferProducer>* outProducer,
|
||||
sp<IGraphicBufferConsumer>* outConsumer,
|
||||
const sp<IGraphicBufferAlloc>& allocator = NULL);
|
||||
|
||||
virtual ~BufferQueue();
|
||||
|
||||
/*
|
||||
|
@ -56,6 +56,19 @@ void BufferQueue::createBufferQueue(sp<BnGraphicBufferProducer>* outProducer,
|
||||
*outConsumer = new BufferQueueConsumer(core);
|
||||
}
|
||||
|
||||
void BufferQueue::createBufferQueue(sp<IGraphicBufferProducer>* outProducer,
|
||||
sp<IGraphicBufferConsumer>* outConsumer,
|
||||
const sp<IGraphicBufferAlloc>& allocator) {
|
||||
LOG_ALWAYS_FATAL_IF(outProducer == NULL,
|
||||
"BufferQueue: outProducer must not be NULL");
|
||||
LOG_ALWAYS_FATAL_IF(outConsumer == NULL,
|
||||
"BufferQueue: outConsumer must not be NULL");
|
||||
|
||||
sp<BufferQueueCore> core(new BufferQueueCore(allocator));
|
||||
*outProducer = new BufferQueueProducer(core);
|
||||
*outConsumer = new BufferQueueConsumer(core);
|
||||
}
|
||||
|
||||
BufferQueue::BufferQueue(const sp<IGraphicBufferAlloc>& allocator) :
|
||||
mProducer(),
|
||||
mConsumer()
|
||||
|
Loading…
Reference in New Issue
Block a user