Loading include/ui/GrallocAllocator.h +5 −3 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ using hardware::graphics::allocator::V2_0::ConsumerUsage; using hardware::graphics::allocator::V2_0::BufferDescriptor; using hardware::graphics::allocator::V2_0::Buffer; using hardware::graphics::allocator::V2_0::IAllocator; using hardware::graphics::allocator::V2_0::IAllocatorClient; using hardware::graphics::common::V1_0::PixelFormat; // Allocator is a wrapper to IAllocator, a proxy to server-side allocator. Loading @@ -40,12 +41,12 @@ public: Allocator(); // this will be removed and Allocator will be always valid bool valid() const { return (mService != nullptr); } bool valid() const { return (mAllocator != nullptr); } std::string dumpDebugInfo() const; Error createBufferDescriptor( const IAllocator::BufferDescriptorInfo& descriptorInfo, const IAllocatorClient::BufferDescriptorInfo& descriptorInfo, BufferDescriptor& descriptor) const; void destroyBufferDescriptor(BufferDescriptor descriptor) const; Loading @@ -56,7 +57,8 @@ public: native_handle_t*& bufferHandle) const; private: sp<IAllocator> mService; sp<IAllocator> mAllocator; sp<IAllocatorClient> mClient; }; } // namespace Gralloc2 Loading libs/ui/GrallocAllocator.cpp +19 −8 Original line number Diff line number Diff line Loading @@ -28,14 +28,25 @@ constexpr Error kDefaultError = Error::NO_RESOURCES; Allocator::Allocator() { mService = IAllocator::getService("gralloc"); mAllocator = IAllocator::getService("gralloc"); if (mAllocator != nullptr) { mAllocator->createClient( [&](const auto& tmpError, const auto& tmpClient) { if (tmpError == Error::NONE) { mClient = tmpClient; } }); if (mClient == nullptr) { mAllocator.clear(); } } } std::string Allocator::dumpDebugInfo() const { std::string info; mService->dumpDebugInfo([&](const auto& tmpInfo) { mAllocator->dumpDebugInfo([&](const auto& tmpInfo) { info = tmpInfo.c_str(); }); Loading @@ -43,11 +54,11 @@ std::string Allocator::dumpDebugInfo() const } Error Allocator::createBufferDescriptor( const IAllocator::BufferDescriptorInfo& descriptorInfo, const IAllocatorClient::BufferDescriptorInfo& descriptorInfo, BufferDescriptor& descriptor) const { Error error = kDefaultError; mService->createDescriptor(descriptorInfo, mClient->createDescriptor(descriptorInfo, [&](const auto& tmpError, const auto& tmpDescriptor) { error = tmpError; if (error != Error::NONE) { Loading @@ -62,7 +73,7 @@ Error Allocator::createBufferDescriptor( void Allocator::destroyBufferDescriptor(BufferDescriptor descriptor) const { mService->destroyDescriptor(descriptor); mClient->destroyDescriptor(descriptor); } Error Allocator::allocate(BufferDescriptor descriptor, Buffer& buffer) const Loading @@ -71,7 +82,7 @@ Error Allocator::allocate(BufferDescriptor descriptor, Buffer& buffer) const descriptors.setToExternal(&descriptor, 1); Error error = kDefaultError; auto status = mService->allocate(descriptors, auto status = mClient->allocate(descriptors, [&](const auto& tmpError, const auto& tmpBuffers) { error = tmpError; if (tmpError != Error::NONE) { Loading @@ -86,14 +97,14 @@ Error Allocator::allocate(BufferDescriptor descriptor, Buffer& buffer) const void Allocator::free(Buffer buffer) const { mService->free(buffer); mClient->free(buffer); } Error Allocator::exportHandle(BufferDescriptor descriptor, Buffer buffer, native_handle_t*& bufferHandle) const { Error error = kDefaultError; auto status = mService->exportHandle(descriptor, buffer, auto status = mClient->exportHandle(descriptor, buffer, [&](const auto& tmpError, const auto& tmpBufferHandle) { error = tmpError; if (tmpError != Error::NONE) { Loading libs/ui/GraphicBufferAllocator.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,7 @@ public: PixelFormat format, uint32_t layerCount, uint32_t usage) : mAllocator(allocator), mBufferValid(false) { Gralloc2::IAllocator::BufferDescriptorInfo info = {}; Gralloc2::IAllocatorClient::BufferDescriptorInfo info = {}; info.width = width; info.height = height; info.format = static_cast<Gralloc2::PixelFormat>(format); Loading Loading
include/ui/GrallocAllocator.h +5 −3 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ using hardware::graphics::allocator::V2_0::ConsumerUsage; using hardware::graphics::allocator::V2_0::BufferDescriptor; using hardware::graphics::allocator::V2_0::Buffer; using hardware::graphics::allocator::V2_0::IAllocator; using hardware::graphics::allocator::V2_0::IAllocatorClient; using hardware::graphics::common::V1_0::PixelFormat; // Allocator is a wrapper to IAllocator, a proxy to server-side allocator. Loading @@ -40,12 +41,12 @@ public: Allocator(); // this will be removed and Allocator will be always valid bool valid() const { return (mService != nullptr); } bool valid() const { return (mAllocator != nullptr); } std::string dumpDebugInfo() const; Error createBufferDescriptor( const IAllocator::BufferDescriptorInfo& descriptorInfo, const IAllocatorClient::BufferDescriptorInfo& descriptorInfo, BufferDescriptor& descriptor) const; void destroyBufferDescriptor(BufferDescriptor descriptor) const; Loading @@ -56,7 +57,8 @@ public: native_handle_t*& bufferHandle) const; private: sp<IAllocator> mService; sp<IAllocator> mAllocator; sp<IAllocatorClient> mClient; }; } // namespace Gralloc2 Loading
libs/ui/GrallocAllocator.cpp +19 −8 Original line number Diff line number Diff line Loading @@ -28,14 +28,25 @@ constexpr Error kDefaultError = Error::NO_RESOURCES; Allocator::Allocator() { mService = IAllocator::getService("gralloc"); mAllocator = IAllocator::getService("gralloc"); if (mAllocator != nullptr) { mAllocator->createClient( [&](const auto& tmpError, const auto& tmpClient) { if (tmpError == Error::NONE) { mClient = tmpClient; } }); if (mClient == nullptr) { mAllocator.clear(); } } } std::string Allocator::dumpDebugInfo() const { std::string info; mService->dumpDebugInfo([&](const auto& tmpInfo) { mAllocator->dumpDebugInfo([&](const auto& tmpInfo) { info = tmpInfo.c_str(); }); Loading @@ -43,11 +54,11 @@ std::string Allocator::dumpDebugInfo() const } Error Allocator::createBufferDescriptor( const IAllocator::BufferDescriptorInfo& descriptorInfo, const IAllocatorClient::BufferDescriptorInfo& descriptorInfo, BufferDescriptor& descriptor) const { Error error = kDefaultError; mService->createDescriptor(descriptorInfo, mClient->createDescriptor(descriptorInfo, [&](const auto& tmpError, const auto& tmpDescriptor) { error = tmpError; if (error != Error::NONE) { Loading @@ -62,7 +73,7 @@ Error Allocator::createBufferDescriptor( void Allocator::destroyBufferDescriptor(BufferDescriptor descriptor) const { mService->destroyDescriptor(descriptor); mClient->destroyDescriptor(descriptor); } Error Allocator::allocate(BufferDescriptor descriptor, Buffer& buffer) const Loading @@ -71,7 +82,7 @@ Error Allocator::allocate(BufferDescriptor descriptor, Buffer& buffer) const descriptors.setToExternal(&descriptor, 1); Error error = kDefaultError; auto status = mService->allocate(descriptors, auto status = mClient->allocate(descriptors, [&](const auto& tmpError, const auto& tmpBuffers) { error = tmpError; if (tmpError != Error::NONE) { Loading @@ -86,14 +97,14 @@ Error Allocator::allocate(BufferDescriptor descriptor, Buffer& buffer) const void Allocator::free(Buffer buffer) const { mService->free(buffer); mClient->free(buffer); } Error Allocator::exportHandle(BufferDescriptor descriptor, Buffer buffer, native_handle_t*& bufferHandle) const { Error error = kDefaultError; auto status = mService->exportHandle(descriptor, buffer, auto status = mClient->exportHandle(descriptor, buffer, [&](const auto& tmpError, const auto& tmpBufferHandle) { error = tmpError; if (tmpError != Error::NONE) { Loading
libs/ui/GraphicBufferAllocator.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,7 @@ public: PixelFormat format, uint32_t layerCount, uint32_t usage) : mAllocator(allocator), mBufferValid(false) { Gralloc2::IAllocator::BufferDescriptorInfo info = {}; Gralloc2::IAllocatorClient::BufferDescriptorInfo info = {}; info.width = width; info.height = height; info.format = static_cast<Gralloc2::PixelFormat>(format); Loading