summaryrefslogtreecommitdiff
path: root/libs/ui/GraphicBufferMapper.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/ui/GraphicBufferMapper.cpp
parentbd448543439eb0f337191897bc3305eb8be0adda (diff)
Add methods for allocating and locking GraphicBuffers via gralloc1 flags
Bug: 34050596 Test: manual Change-Id: I9515e60fe6b67d2c6f02b1bb78651669430f12ef
Diffstat (limited to 'libs/ui/GraphicBufferMapper.cpp')
-rw-r--r--libs/ui/GraphicBufferMapper.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/libs/ui/GraphicBufferMapper.cpp b/libs/ui/GraphicBufferMapper.cpp
index 1ff934bfe9..f03a30730b 100644
--- a/libs/ui/GraphicBufferMapper.cpp
+++ b/libs/ui/GraphicBufferMapper.cpp
@@ -143,6 +143,13 @@ status_t GraphicBufferMapper::unlock(buffer_handle_t handle)
status_t GraphicBufferMapper::lockAsync(buffer_handle_t handle,
uint32_t usage, const Rect& bounds, void** vaddr, int fenceFd)
{
+ return lockAsync(handle, usage, usage, bounds, vaddr, fenceFd);
+}
+
+status_t GraphicBufferMapper::lockAsync(buffer_handle_t handle,
+ uint64_t producerUsage, uint64_t consumerUsage, const Rect& bounds,
+ void** vaddr, int fenceFd)
+{
ATRACE_CALL();
gralloc1_rect_t accessRegion = asGralloc1Rect(bounds);
@@ -151,12 +158,13 @@ status_t GraphicBufferMapper::lockAsync(buffer_handle_t handle,
const Gralloc2::IMapper::Rect& accessRect =
*reinterpret_cast<Gralloc2::IMapper::Rect*>(&accessRegion);
error = static_cast<gralloc1_error_t>(mMapper->lock(
- handle, usage, usage, accessRect, fenceFd, vaddr));
+ handle, producerUsage, consumerUsage, accessRect,
+ fenceFd, vaddr));
} else {
sp<Fence> fence = new Fence(fenceFd);
error = mDevice->lock(handle,
- static_cast<gralloc1_producer_usage_t>(usage),
- static_cast<gralloc1_consumer_usage_t>(usage),
+ static_cast<gralloc1_producer_usage_t>(producerUsage),
+ static_cast<gralloc1_consumer_usage_t>(consumerUsage),
&accessRegion, vaddr, fence);
}