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

Commit ff415149 authored by Romain Guy's avatar Romain Guy
Browse files

Add fp16 pixel and window formats

Bug: 32984164
Test: compile
Change-Id: I8303afbf857796295a280c0d9438a3c403a11437
parent 7969999d
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
@@ -38,12 +38,18 @@ extern "C" {
 * Pixel formats that a window can use.
 * Pixel formats that a window can use.
 */
 */
enum {
enum {
    // NOTE: these values must match the values from graphics/common/x.x/types.hal

    /** Red: 8 bits, Green: 8 bits, Blue: 8 bits, Alpha: 8 bits. **/
    /** Red: 8 bits, Green: 8 bits, Blue: 8 bits, Alpha: 8 bits. **/
    WINDOW_FORMAT_RGBA_8888          = 1,
    WINDOW_FORMAT_RGBA_8888          = 1,
    /** Red: 8 bits, Green: 8 bits, Blue: 8 bits, Unused: 8 bits. **/
    /** Red: 8 bits, Green: 8 bits, Blue: 8 bits, Unused: 8 bits. **/
    WINDOW_FORMAT_RGBX_8888          = 2,
    WINDOW_FORMAT_RGBX_8888          = 2,
    /** Red: 5 bits, Green: 6 bits, Blue: 5 bits. **/
    /** Red: 5 bits, Green: 6 bits, Blue: 5 bits. **/
    WINDOW_FORMAT_RGB_565            = 4,
    WINDOW_FORMAT_RGB_565            = 4,
    /** Red: 16 bits, Green: 16 bits, Blue: 16 bits, Alpha: 16 bits. **/
    WINDOW_FORMAT_RGBA_FP16          = 0x16,
    /** Red: 16 bits, Green: 16 bits, Blue: 16 bits, Unused: 16 bits. **/
    WINDOW_FORMAT_RGBX_FP16          = 0x17,
};
};


struct ANativeWindow;
struct ANativeWindow;
+2 −0
Original line number Original line Diff line number Diff line
@@ -60,6 +60,8 @@ enum {
    PIXEL_FORMAT_BGRA_8888   = HAL_PIXEL_FORMAT_BGRA_8888,   // 4x8-bit BGRA
    PIXEL_FORMAT_BGRA_8888   = HAL_PIXEL_FORMAT_BGRA_8888,   // 4x8-bit BGRA
    PIXEL_FORMAT_RGBA_5551   = 6,                            // 16-bit ARGB
    PIXEL_FORMAT_RGBA_5551   = 6,                            // 16-bit ARGB
    PIXEL_FORMAT_RGBA_4444   = 7,                            // 16-bit ARGB
    PIXEL_FORMAT_RGBA_4444   = 7,                            // 16-bit ARGB
    PIXEL_FORMAT_RGBA_FP16   = HAL_PIXEL_FORMAT_RGBA_FP16,   // 64-bit RGBA
    PIXEL_FORMAT_RGBX_FP16   = HAL_PIXEL_FORMAT_RGBX_FP16,   // 64-bit RGB0
};
};


typedef int32_t PixelFormat;
typedef int32_t PixelFormat;
+2 −0
Original line number Original line Diff line number Diff line
@@ -64,6 +64,8 @@ static bool isPossiblyYUV(PixelFormat format) {
    switch (static_cast<int>(format)) {
    switch (static_cast<int>(format)) {
        case HAL_PIXEL_FORMAT_RGBA_8888:
        case HAL_PIXEL_FORMAT_RGBA_8888:
        case HAL_PIXEL_FORMAT_RGBX_8888:
        case HAL_PIXEL_FORMAT_RGBX_8888:
        case HAL_PIXEL_FORMAT_RGBA_FP16:
        case HAL_PIXEL_FORMAT_RGBX_FP16:
        case HAL_PIXEL_FORMAT_RGB_888:
        case HAL_PIXEL_FORMAT_RGB_888:
        case HAL_PIXEL_FORMAT_RGB_565:
        case HAL_PIXEL_FORMAT_RGB_565:
        case HAL_PIXEL_FORMAT_BGRA_8888:
        case HAL_PIXEL_FORMAT_BGRA_8888:
+2 −0
Original line number Original line Diff line number Diff line
@@ -856,6 +856,8 @@ void GLConsumer::computeTransformMatrix(float outTransform[16],
            switch (buf->getPixelFormat()) {
            switch (buf->getPixelFormat()) {
                case PIXEL_FORMAT_RGBA_8888:
                case PIXEL_FORMAT_RGBA_8888:
                case PIXEL_FORMAT_RGBX_8888:
                case PIXEL_FORMAT_RGBX_8888:
                case PIXEL_FORMAT_RGBA_FP16:
                case PIXEL_FORMAT_RGBX_FP16:
                case PIXEL_FORMAT_RGB_888:
                case PIXEL_FORMAT_RGB_888:
                case PIXEL_FORMAT_RGB_565:
                case PIXEL_FORMAT_RGB_565:
                case PIXEL_FORMAT_BGRA_8888:
                case PIXEL_FORMAT_BGRA_8888:
+6 −0
Original line number Original line Diff line number Diff line
@@ -22,6 +22,9 @@ namespace android {


uint32_t bytesPerPixel(PixelFormat format) {
uint32_t bytesPerPixel(PixelFormat format) {
    switch (format) {
    switch (format) {
        case PIXEL_FORMAT_RGBA_FP16:
        case PIXEL_FORMAT_RGBX_FP16:
            return 8;
        case PIXEL_FORMAT_RGBA_8888:
        case PIXEL_FORMAT_RGBA_8888:
        case PIXEL_FORMAT_RGBX_8888:
        case PIXEL_FORMAT_RGBX_8888:
        case PIXEL_FORMAT_BGRA_8888:
        case PIXEL_FORMAT_BGRA_8888:
@@ -38,6 +41,9 @@ uint32_t bytesPerPixel(PixelFormat format) {


uint32_t bitsPerPixel(PixelFormat format) {
uint32_t bitsPerPixel(PixelFormat format) {
    switch (format) {
    switch (format) {
        case PIXEL_FORMAT_RGBA_FP16:
        case PIXEL_FORMAT_RGBX_FP16:
            return 64;
        case PIXEL_FORMAT_RGBA_8888:
        case PIXEL_FORMAT_RGBA_8888:
        case PIXEL_FORMAT_RGBX_8888:
        case PIXEL_FORMAT_RGBX_8888:
        case PIXEL_FORMAT_BGRA_8888:
        case PIXEL_FORMAT_BGRA_8888:
Loading