Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b671e37 authored by Leon Scroggins's avatar Leon Scroggins Committed by Android (Google) Code Review
Browse files

Merge "Add AHB and Pixel- Formats for R8"

parents 584cc9c3 4d258854
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@

#include <private/android/AHardwareBufferHelpers.h>
#include <android/hardware/graphics/common/1.1/types.h>

#include <aidl/android/hardware/graphics/common/PixelFormat.h>

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<int>(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;
+7 −0
Original line number Diff line number Diff line
@@ -158,6 +158,13 @@ enum AHardwareBuffer_Format {
     * cube-maps or multi-layered textures.
     */
    AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420             = 0x23,

    /**
     * Corresponding formats:
     *   Vulkan: VK_FORMAT_R8_UNORM
     *   OpenGL ES: GR_GL_R8
     */
    AHARDWAREBUFFER_FORMAT_R8_UNORM                 = 0x38,
};

/**
+2 −0
Original line number Diff line number Diff line
@@ -302,6 +302,8 @@ std::string decodePixelFormat(android::PixelFormat format) {
            return std::string("RGB_565");
        case android::PIXEL_FORMAT_BGRA_8888:
            return std::string("BGRA_8888");
        case android::PIXEL_FORMAT_R_8:
            return std::string("R_8");
        default:
            return StringPrintf("Unknown %#08x", format);
    }
+2 −0
Original line number Diff line number Diff line
@@ -35,6 +35,8 @@ uint32_t bytesPerPixel(PixelFormat format) {
        case PIXEL_FORMAT_RGBA_5551:
        case PIXEL_FORMAT_RGBA_4444:
            return 2;
        case PIXEL_FORMAT_R_8:
            return 1;
    }
    return 0;
}
+1 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ enum {
    PIXEL_FORMAT_RGBA_4444    = 7,                             // 16-bit ARGB
    PIXEL_FORMAT_RGBA_FP16    = HAL_PIXEL_FORMAT_RGBA_FP16,    // 64-bit RGBA
    PIXEL_FORMAT_RGBA_1010102 = HAL_PIXEL_FORMAT_RGBA_1010102, // 32-bit RGBA
    PIXEL_FORMAT_R_8          = 0x38,
};

typedef int32_t PixelFormat;
Loading