From 4d2588545fe9eee49a1ad5edeb4ff1c33e8081c0 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Wed, 24 Nov 2021 14:40:53 -0500 Subject: Add AHB and Pixel- Formats for R8 Add AHARDWAREBUFFER_FORMAT_R8_UNORM and PIXEL_FORMAT_R_8. These will be used for an alpha 8 buffer representing the screen decorations. Enum value matches AIDL R_8 in I6f6b7f22e76609151a413ca6a6dbf55bd91911dd. Bug: 193170859 Test: make Change-Id: I4846327b29736ee811672801a683deb287342a8e --- libs/nativewindow/AHardwareBuffer.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'libs/nativewindow/AHardwareBuffer.cpp') diff --git a/libs/nativewindow/AHardwareBuffer.cpp b/libs/nativewindow/AHardwareBuffer.cpp index d429551045..cb3361b431 100644 --- a/libs/nativewindow/AHardwareBuffer.cpp +++ b/libs/nativewindow/AHardwareBuffer.cpp @@ -30,7 +30,7 @@ #include #include - +#include static constexpr int kFdBufferSize = 128 * sizeof(int); // 128 ints @@ -588,8 +588,12 @@ bool AHardwareBuffer_isValidPixelFormat(uint32_t format) { "HAL and AHardwareBuffer pixel format don't match"); static_assert(HAL_PIXEL_FORMAT_YCBCR_422_I == AHARDWAREBUFFER_FORMAT_YCbCr_422_I, "HAL and AHardwareBuffer pixel format don't match"); + static_assert(static_cast(aidl::android::hardware::graphics::common::PixelFormat::R_8) == + AHARDWAREBUFFER_FORMAT_R8_UNORM, + "HAL and AHardwareBuffer pixel format don't match"); switch (format) { + case AHARDWAREBUFFER_FORMAT_R8_UNORM: case AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM: case AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM: case AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM: @@ -641,6 +645,8 @@ bool AHardwareBuffer_formatIsYuv(uint32_t format) { uint32_t AHardwareBuffer_bytesPerPixel(uint32_t format) { switch (format) { + case AHARDWAREBUFFER_FORMAT_R8_UNORM: + return 1; case AHARDWAREBUFFER_FORMAT_R5G6B5_UNORM: case AHARDWAREBUFFER_FORMAT_D16_UNORM: return 2; -- cgit v1.2.3-59-g8ed1b