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;
|
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
|
// BufferQueue manages a pool of gralloc memory slots to be used by
|
||||||
// producers and consumers. allocator is used to allocate all the
|
// producers and consumers. allocator is used to allocate all the
|
||||||
// needed gralloc buffers.
|
// needed gralloc buffers.
|
||||||
BufferQueue(const sp<IGraphicBufferAlloc>& allocator = NULL);
|
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();
|
virtual ~BufferQueue();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -56,6 +56,19 @@ void BufferQueue::createBufferQueue(sp<BnGraphicBufferProducer>* outProducer,
|
|||||||
*outConsumer = new BufferQueueConsumer(core);
|
*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) :
|
BufferQueue::BufferQueue(const sp<IGraphicBufferAlloc>& allocator) :
|
||||||
mProducer(),
|
mProducer(),
|
||||||
mConsumer()
|
mConsumer()
|
||||||
|
Loading…
Reference in New Issue
Block a user