Loading include/ui/Gralloc1.h +13 −2 Original line number Diff line number Diff line Loading @@ -88,8 +88,6 @@ public: std::shared_ptr<Descriptor> createDescriptor(); gralloc1_error_t getStride(buffer_handle_t buffer, uint32_t* outStride); gralloc1_error_t allocate( const std::vector<std::shared_ptr<const Descriptor>>& descriptors, std::vector<buffer_handle_t>* outBuffers); Loading @@ -102,6 +100,19 @@ public: gralloc1_error_t release(buffer_handle_t buffer); gralloc1_error_t getDimensions(buffer_handle_t buffer, uint32_t* outWidth, uint32_t* outHeight); gralloc1_error_t getFormat(buffer_handle_t buffer, int32_t* outFormat); gralloc1_error_t getLayerCount(buffer_handle_t buffer, uint32_t* outLayerCount); gralloc1_error_t getProducerUsage(buffer_handle_t buffer, uint64_t* outProducerUsage); gralloc1_error_t getConsumerUsage(buffer_handle_t buffer, uint64_t* outConsumerUsage); gralloc1_error_t getBackingStore(buffer_handle_t buffer, uint64_t* outBackingStore); gralloc1_error_t getStride(buffer_handle_t buffer, uint32_t* outStride); gralloc1_error_t getNumFlexPlanes(buffer_handle_t buffer, uint32_t* outNumPlanes); Loading include/ui/Gralloc1On0Adapter.h +2 −2 Original line number Diff line number Diff line Loading @@ -325,7 +325,7 @@ private: auto usage = GRALLOC1_CONSUMER_USAGE_NONE; auto error = callBufferFunction(device, bufferHandle, &Buffer::getConsumerUsage, &usage); if (error != GRALLOC1_ERROR_NONE) { if (error == GRALLOC1_ERROR_NONE) { *outUsage = static_cast<uint64_t>(usage); } return error; Loading @@ -336,7 +336,7 @@ private: auto usage = GRALLOC1_PRODUCER_USAGE_NONE; auto error = callBufferFunction(device, bufferHandle, &Buffer::getProducerUsage, &usage); if (error != GRALLOC1_ERROR_NONE) { if (error == GRALLOC1_ERROR_NONE) { *outUsage = static_cast<uint64_t>(usage); } return error; Loading include/ui/GrallocMapper.h +14 −8 Original line number Diff line number Diff line Loading @@ -45,17 +45,23 @@ public: Error retain(buffer_handle_t handle) const; void release(buffer_handle_t handle) const; Error getDimensions(buffer_handle_t handle, uint32_t* outWidth, uint32_t* outHeight) const; Error getFormat(buffer_handle_t handle, int32_t* outFormat) const; Error getLayerCount(buffer_handle_t handle, uint32_t* outLayerCount) const; Error getProducerUsage(buffer_handle_t handle, uint64_t* outProducerUsage) const; Error getConsumerUsage(buffer_handle_t handle, uint64_t* outConsumerUsage) const; Error getBackingStore(buffer_handle_t handle, uint64_t* outBackingStore) const; Error getStride(buffer_handle_t handle, uint32_t* outStride) const; Error lock(buffer_handle_t handle, uint64_t producerUsageMask, uint64_t consumerUsageMask, const IMapper::Rect& accessRegion, Error lock(buffer_handle_t handle, uint64_t producerUsage, uint64_t consumerUsage, const IMapper::Rect& accessRegion, int acquireFence, void** outData) const; Error lock(buffer_handle_t handle, uint64_t producerUsageMask, uint64_t consumerUsageMask, const IMapper::Rect& accessRegion, Error lock(buffer_handle_t handle, uint64_t producerUsage, uint64_t consumerUsage, const IMapper::Rect& accessRegion, int acquireFence, FlexLayout* outLayout) const; int unlock(buffer_handle_t handle) const; Loading include/ui/GraphicBufferMapper.h +19 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,25 @@ public: status_t unregisterBuffer(buffer_handle_t handle); status_t getDimensions(buffer_handle_t handle, uint32_t* outWidth, uint32_t* outHeight) const; status_t getFormat(buffer_handle_t handle, int32_t* outFormat) const; status_t getLayerCount(buffer_handle_t handle, uint32_t* outLayerCount) const; status_t getProducerUsage(buffer_handle_t handle, uint64_t* outProducerUsage) const; status_t getConsumerUsage(buffer_handle_t handle, uint64_t* outConsumerUsage) const; status_t getBackingStore(buffer_handle_t handle, uint64_t* outBackingStore) const; status_t getStride(buffer_handle_t handle, uint32_t* outStride) const; status_t lock(buffer_handle_t handle, uint32_t usage, const Rect& bounds, void** vaddr); Loading libs/ui/Gralloc1.cpp +96 −9 Original line number Diff line number Diff line Loading @@ -140,12 +140,6 @@ std::shared_ptr<Descriptor> Device::createDescriptor() return descriptor; } gralloc1_error_t Device::getStride(buffer_handle_t buffer, uint32_t* outStride) { int32_t intError = mFunctions.getStride(mDevice, buffer, outStride); return static_cast<gralloc1_error_t>(intError); } static inline bool allocationSucceded(gralloc1_error_t error) { return error == GRALLOC1_ERROR_NONE || error == GRALLOC1_ERROR_NOT_SHARED; Loading Loading @@ -225,6 +219,99 @@ gralloc1_error_t Device::release(buffer_handle_t buffer) return static_cast<gralloc1_error_t>(intError); } gralloc1_error_t Device::getDimensions(buffer_handle_t buffer, uint32_t* outWidth, uint32_t* outHeight) { uint32_t width = 0; uint32_t height = 0; int32_t intError = mFunctions.getDimensions(mDevice, buffer, &width, &height); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outWidth = width; *outHeight = height; } return error; } gralloc1_error_t Device::getFormat(buffer_handle_t buffer, int32_t* outFormat) { int32_t format = 0; int32_t intError = mFunctions.getFormat(mDevice, buffer, &format); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outFormat = format; } return error; } gralloc1_error_t Device::getLayerCount(buffer_handle_t buffer, uint32_t* outLayerCount) { if (hasCapability(GRALLOC1_CAPABILITY_LAYERED_BUFFERS)) { uint32_t layerCount = 0; int32_t intError = mFunctions.getLayerCount(mDevice, buffer, &layerCount); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outLayerCount = layerCount; } return error; } else { // Layered buffers are not supported on this device. return GRALLOC1_ERROR_UNSUPPORTED; } } gralloc1_error_t Device::getProducerUsage(buffer_handle_t buffer, uint64_t* outProducerUsage) { uint64_t usage = 0; int32_t intError = mFunctions.getProducerUsage(mDevice, buffer, &usage); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outProducerUsage = usage; } return error; } gralloc1_error_t Device::getConsumerUsage(buffer_handle_t buffer, uint64_t* outConsumerUsage) { uint64_t usage = 0; int32_t intError = mFunctions.getConsumerUsage(mDevice, buffer, &usage); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outConsumerUsage = usage; } return error; } gralloc1_error_t Device::getBackingStore(buffer_handle_t buffer, uint64_t* outBackingStore) { uint64_t store = 0; int32_t intError = mFunctions.getBackingStore(mDevice, buffer, &store); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outBackingStore = store; } return error; } gralloc1_error_t Device::getStride(buffer_handle_t buffer, uint32_t* outStride) { uint32_t stride = 0; int32_t intError = mFunctions.getStride(mDevice, buffer, &stride); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outStride = stride; } return error; } gralloc1_error_t Device::getNumFlexPlanes(buffer_handle_t buffer, uint32_t* outNumPlanes) { Loading @@ -244,7 +331,7 @@ gralloc1_error_t Device::lock(buffer_handle_t buffer, const sp<Fence>& acquireFence) { ALOGV("Calling lock(%p)", buffer); return lockHelper(mFunctions.lock.pfn, buffer, producerUsage, return lockHelper(mFunctions.lock, buffer, producerUsage, consumerUsage, accessRegion, outData, acquireFence); } Loading @@ -256,7 +343,7 @@ gralloc1_error_t Device::lockFlex(buffer_handle_t buffer, const sp<Fence>& acquireFence) { ALOGV("Calling lockFlex(%p)", buffer); return lockHelper(mFunctions.lockFlex.pfn, buffer, producerUsage, return lockHelper(mFunctions.lockFlex, buffer, producerUsage, consumerUsage, accessRegion, outData, acquireFence); } Loading @@ -268,7 +355,7 @@ gralloc1_error_t Device::lockYCbCr(buffer_handle_t buffer, const sp<Fence>& acquireFence) { ALOGV("Calling lockYCbCr(%p)", buffer); return lockHelper(mFunctions.lockYCbCr.pfn, buffer, producerUsage, return lockHelper(mFunctions.lockYCbCr, buffer, producerUsage, consumerUsage, accessRegion, outData, acquireFence); } Loading Loading
include/ui/Gralloc1.h +13 −2 Original line number Diff line number Diff line Loading @@ -88,8 +88,6 @@ public: std::shared_ptr<Descriptor> createDescriptor(); gralloc1_error_t getStride(buffer_handle_t buffer, uint32_t* outStride); gralloc1_error_t allocate( const std::vector<std::shared_ptr<const Descriptor>>& descriptors, std::vector<buffer_handle_t>* outBuffers); Loading @@ -102,6 +100,19 @@ public: gralloc1_error_t release(buffer_handle_t buffer); gralloc1_error_t getDimensions(buffer_handle_t buffer, uint32_t* outWidth, uint32_t* outHeight); gralloc1_error_t getFormat(buffer_handle_t buffer, int32_t* outFormat); gralloc1_error_t getLayerCount(buffer_handle_t buffer, uint32_t* outLayerCount); gralloc1_error_t getProducerUsage(buffer_handle_t buffer, uint64_t* outProducerUsage); gralloc1_error_t getConsumerUsage(buffer_handle_t buffer, uint64_t* outConsumerUsage); gralloc1_error_t getBackingStore(buffer_handle_t buffer, uint64_t* outBackingStore); gralloc1_error_t getStride(buffer_handle_t buffer, uint32_t* outStride); gralloc1_error_t getNumFlexPlanes(buffer_handle_t buffer, uint32_t* outNumPlanes); Loading
include/ui/Gralloc1On0Adapter.h +2 −2 Original line number Diff line number Diff line Loading @@ -325,7 +325,7 @@ private: auto usage = GRALLOC1_CONSUMER_USAGE_NONE; auto error = callBufferFunction(device, bufferHandle, &Buffer::getConsumerUsage, &usage); if (error != GRALLOC1_ERROR_NONE) { if (error == GRALLOC1_ERROR_NONE) { *outUsage = static_cast<uint64_t>(usage); } return error; Loading @@ -336,7 +336,7 @@ private: auto usage = GRALLOC1_PRODUCER_USAGE_NONE; auto error = callBufferFunction(device, bufferHandle, &Buffer::getProducerUsage, &usage); if (error != GRALLOC1_ERROR_NONE) { if (error == GRALLOC1_ERROR_NONE) { *outUsage = static_cast<uint64_t>(usage); } return error; Loading
include/ui/GrallocMapper.h +14 −8 Original line number Diff line number Diff line Loading @@ -45,17 +45,23 @@ public: Error retain(buffer_handle_t handle) const; void release(buffer_handle_t handle) const; Error getDimensions(buffer_handle_t handle, uint32_t* outWidth, uint32_t* outHeight) const; Error getFormat(buffer_handle_t handle, int32_t* outFormat) const; Error getLayerCount(buffer_handle_t handle, uint32_t* outLayerCount) const; Error getProducerUsage(buffer_handle_t handle, uint64_t* outProducerUsage) const; Error getConsumerUsage(buffer_handle_t handle, uint64_t* outConsumerUsage) const; Error getBackingStore(buffer_handle_t handle, uint64_t* outBackingStore) const; Error getStride(buffer_handle_t handle, uint32_t* outStride) const; Error lock(buffer_handle_t handle, uint64_t producerUsageMask, uint64_t consumerUsageMask, const IMapper::Rect& accessRegion, Error lock(buffer_handle_t handle, uint64_t producerUsage, uint64_t consumerUsage, const IMapper::Rect& accessRegion, int acquireFence, void** outData) const; Error lock(buffer_handle_t handle, uint64_t producerUsageMask, uint64_t consumerUsageMask, const IMapper::Rect& accessRegion, Error lock(buffer_handle_t handle, uint64_t producerUsage, uint64_t consumerUsage, const IMapper::Rect& accessRegion, int acquireFence, FlexLayout* outLayout) const; int unlock(buffer_handle_t handle) const; Loading
include/ui/GraphicBufferMapper.h +19 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,25 @@ public: status_t unregisterBuffer(buffer_handle_t handle); status_t getDimensions(buffer_handle_t handle, uint32_t* outWidth, uint32_t* outHeight) const; status_t getFormat(buffer_handle_t handle, int32_t* outFormat) const; status_t getLayerCount(buffer_handle_t handle, uint32_t* outLayerCount) const; status_t getProducerUsage(buffer_handle_t handle, uint64_t* outProducerUsage) const; status_t getConsumerUsage(buffer_handle_t handle, uint64_t* outConsumerUsage) const; status_t getBackingStore(buffer_handle_t handle, uint64_t* outBackingStore) const; status_t getStride(buffer_handle_t handle, uint32_t* outStride) const; status_t lock(buffer_handle_t handle, uint32_t usage, const Rect& bounds, void** vaddr); Loading
libs/ui/Gralloc1.cpp +96 −9 Original line number Diff line number Diff line Loading @@ -140,12 +140,6 @@ std::shared_ptr<Descriptor> Device::createDescriptor() return descriptor; } gralloc1_error_t Device::getStride(buffer_handle_t buffer, uint32_t* outStride) { int32_t intError = mFunctions.getStride(mDevice, buffer, outStride); return static_cast<gralloc1_error_t>(intError); } static inline bool allocationSucceded(gralloc1_error_t error) { return error == GRALLOC1_ERROR_NONE || error == GRALLOC1_ERROR_NOT_SHARED; Loading Loading @@ -225,6 +219,99 @@ gralloc1_error_t Device::release(buffer_handle_t buffer) return static_cast<gralloc1_error_t>(intError); } gralloc1_error_t Device::getDimensions(buffer_handle_t buffer, uint32_t* outWidth, uint32_t* outHeight) { uint32_t width = 0; uint32_t height = 0; int32_t intError = mFunctions.getDimensions(mDevice, buffer, &width, &height); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outWidth = width; *outHeight = height; } return error; } gralloc1_error_t Device::getFormat(buffer_handle_t buffer, int32_t* outFormat) { int32_t format = 0; int32_t intError = mFunctions.getFormat(mDevice, buffer, &format); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outFormat = format; } return error; } gralloc1_error_t Device::getLayerCount(buffer_handle_t buffer, uint32_t* outLayerCount) { if (hasCapability(GRALLOC1_CAPABILITY_LAYERED_BUFFERS)) { uint32_t layerCount = 0; int32_t intError = mFunctions.getLayerCount(mDevice, buffer, &layerCount); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outLayerCount = layerCount; } return error; } else { // Layered buffers are not supported on this device. return GRALLOC1_ERROR_UNSUPPORTED; } } gralloc1_error_t Device::getProducerUsage(buffer_handle_t buffer, uint64_t* outProducerUsage) { uint64_t usage = 0; int32_t intError = mFunctions.getProducerUsage(mDevice, buffer, &usage); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outProducerUsage = usage; } return error; } gralloc1_error_t Device::getConsumerUsage(buffer_handle_t buffer, uint64_t* outConsumerUsage) { uint64_t usage = 0; int32_t intError = mFunctions.getConsumerUsage(mDevice, buffer, &usage); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outConsumerUsage = usage; } return error; } gralloc1_error_t Device::getBackingStore(buffer_handle_t buffer, uint64_t* outBackingStore) { uint64_t store = 0; int32_t intError = mFunctions.getBackingStore(mDevice, buffer, &store); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outBackingStore = store; } return error; } gralloc1_error_t Device::getStride(buffer_handle_t buffer, uint32_t* outStride) { uint32_t stride = 0; int32_t intError = mFunctions.getStride(mDevice, buffer, &stride); auto error = static_cast<gralloc1_error_t>(intError); if (error == GRALLOC1_ERROR_NONE) { *outStride = stride; } return error; } gralloc1_error_t Device::getNumFlexPlanes(buffer_handle_t buffer, uint32_t* outNumPlanes) { Loading @@ -244,7 +331,7 @@ gralloc1_error_t Device::lock(buffer_handle_t buffer, const sp<Fence>& acquireFence) { ALOGV("Calling lock(%p)", buffer); return lockHelper(mFunctions.lock.pfn, buffer, producerUsage, return lockHelper(mFunctions.lock, buffer, producerUsage, consumerUsage, accessRegion, outData, acquireFence); } Loading @@ -256,7 +343,7 @@ gralloc1_error_t Device::lockFlex(buffer_handle_t buffer, const sp<Fence>& acquireFence) { ALOGV("Calling lockFlex(%p)", buffer); return lockHelper(mFunctions.lockFlex.pfn, buffer, producerUsage, return lockHelper(mFunctions.lockFlex, buffer, producerUsage, consumerUsage, accessRegion, outData, acquireFence); } Loading @@ -268,7 +355,7 @@ gralloc1_error_t Device::lockYCbCr(buffer_handle_t buffer, const sp<Fence>& acquireFence) { ALOGV("Calling lockYCbCr(%p)", buffer); return lockHelper(mFunctions.lockYCbCr.pfn, buffer, producerUsage, return lockHelper(mFunctions.lockYCbCr, buffer, producerUsage, consumerUsage, accessRegion, outData, acquireFence); } Loading