15 return AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM;
22 AHardwareBuffer_Desc ahb_desc = {};
29 ahb_desc.usage |= AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER;
33 ahb_desc.usage |= AHARDWAREBUFFER_USAGE_COMPOSER_OVERLAY;
37 ahb_desc.usage |= AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE;
44 return GetProcTable().AHardwareBuffer_isSupported(&desc) != 0u;
48 : descriptor_(descriptor),
51 VALIDATION_LOG <<
"The hardware buffer descriptor is not allocatable.";
56 AHardwareBuffer* buffer =
nullptr;
58 proc_table.AHardwareBuffer_allocate(&android_descriptor_, &buffer);
59 result != 0 || buffer ==
nullptr) {
60 VALIDATION_LOG <<
"Could not allocate hardware buffer. Error: " << result;
63 buffer_.reset(buffer);
97 return android_descriptor_;
109 AHardwareBuffer* buffer) {
113 uint64_t out_id = 0u;
114 if (
GetProcTable().AHardwareBuffer_getId(buffer, &out_id) != 0) {
121 AHardwareBuffer* buffer) {
122 if (!buffer || !
GetProcTable().AHardwareBuffer_describe) {
125 AHardwareBuffer_Desc desc = {};