summaryrefslogtreecommitdiff
path: root/libs/gui/IGraphicBufferAlloc.cpp
diff options
context:
space:
mode:
author Craig Donner <cdonner@google.com> 2017-02-02 12:13:34 -0800
committer Craig Donner <cdonner@google.com> 2017-02-03 14:21:36 -0800
commite96a325aff9da4e02abeb7b9178592583cf3b78c (patch)
treeb93ba6ca1f80ef765d9579a7e69d0336a12abd62 /libs/gui/IGraphicBufferAlloc.cpp
parentbd448543439eb0f337191897bc3305eb8be0adda (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.cpp12
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);