diff options
author | 2017-02-02 12:13:34 -0800 | |
---|---|---|
committer | 2017-02-03 14:21:36 -0800 | |
commit | e96a325aff9da4e02abeb7b9178592583cf3b78c (patch) | |
tree | b93ba6ca1f80ef765d9579a7e69d0336a12abd62 /libs/gui/IGraphicBufferAlloc.cpp | |
parent | bd448543439eb0f337191897bc3305eb8be0adda (diff) |
Add methods for allocating and locking GraphicBuffers via gralloc1 flags
Bug: 34050596
Test: manual
Change-Id: I9515e60fe6b67d2c6f02b1bb78651669430f12ef
Diffstat (limited to 'libs/gui/IGraphicBufferAlloc.cpp')
-rw-r--r-- | libs/gui/IGraphicBufferAlloc.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libs/gui/IGraphicBufferAlloc.cpp b/libs/gui/IGraphicBufferAlloc.cpp index a3d3b74c6b..21a0dd5b3d 100644 --- a/libs/gui/IGraphicBufferAlloc.cpp +++ b/libs/gui/IGraphicBufferAlloc.cpp @@ -46,14 +46,16 @@ public: virtual sp<GraphicBuffer> createGraphicBuffer(uint32_t width, uint32_t height, PixelFormat format, uint32_t layerCount, - uint32_t usage, std::string requestorName, status_t* error) { + uint64_t producerUsage, uint64_t consumerUsage, + std::string requestorName, status_t* error) { Parcel data, reply; data.writeInterfaceToken(IGraphicBufferAlloc::getInterfaceDescriptor()); data.writeUint32(width); data.writeUint32(height); data.writeInt32(static_cast<int32_t>(format)); data.writeUint32(layerCount); - data.writeUint32(usage); + data.writeUint64(producerUsage); + data.writeUint64(consumerUsage); if (requestorName.empty()) { requestorName += "[PID "; requestorName += std::to_string(getpid()); @@ -108,12 +110,14 @@ status_t BnGraphicBufferAlloc::onTransact( uint32_t height = data.readUint32(); PixelFormat format = static_cast<PixelFormat>(data.readInt32()); uint32_t layerCount = data.readUint32(); - uint32_t usage = data.readUint32(); + uint64_t producerUsage = data.readUint64(); + uint64_t consumerUsage = data.readUint64(); status_t error = NO_ERROR; std::string requestorName; data.readUtf8FromUtf16(&requestorName); sp<GraphicBuffer> result = createGraphicBuffer(width, height, - format, layerCount, usage, requestorName, &error); + format, layerCount, producerUsage, consumerUsage, + requestorName, &error); reply->writeInt32(error); if (result != 0) { reply->write(*result); |