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

Commit c920db30 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add support for different color modes for readback"

parents 749ff90c 7c8eb680
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -34,6 +34,32 @@ void TestLayer::write(const std::shared_ptr<CommandWriterBase>& writer) {
    writer->setLayerBlendMode(mBlendMode);
}

const std::vector<ColorMode> ReadbackHelper::colorModes = {ColorMode::SRGB, ColorMode::DISPLAY_P3};
const std::vector<Dataspace> ReadbackHelper::dataspaces = {Dataspace::V0_SRGB,
                                                           Dataspace::DISPLAY_P3};

std::string ReadbackHelper::getColorModeString(ColorMode mode) {
    switch (mode) {
        case ColorMode::SRGB:
            return std::string("SRGB");
        case ColorMode::DISPLAY_P3:
            return std::string("DISPLAY_P3");
        default:
            return std::string("Unsupported color mode for readback");
    }
}

std::string ReadbackHelper::getDataspaceString(Dataspace dataspace) {
    switch (dataspace) {
        case Dataspace::V0_SRGB:
            return std::string("V0_SRGB");
        case Dataspace::DISPLAY_P3:
            return std::string("DISPLAY_P3");
        default:
            return std::string("Unsupported dataspace for readback");
    }
}

int32_t ReadbackHelper::GetBytesPerPixel(PixelFormat pixelFormat) {
    switch (pixelFormat) {
        case PixelFormat::RGBA_8888:
@@ -99,7 +125,7 @@ bool ReadbackHelper::readbackSupported(const PixelFormat& pixelFormat, const Dat
    if (pixelFormat != PixelFormat::RGB_888 && pixelFormat != PixelFormat::RGBA_8888) {
        return false;
    }
    if (dataspace != Dataspace::V0_SRGB) {
    if (std::find(dataspaces.begin(), dataspaces.end(), dataspace) == dataspaces.end()) {
        return false;
    }
    return true;
+7 −0
Original line number Diff line number Diff line
@@ -133,6 +133,10 @@ class TestBufferLayer : public TestLayer {

class ReadbackHelper : public ::testing::VtsHalHidlTargetTestBase {
  public:
    static std::string getColorModeString(ColorMode mode);

    static std::string getDataspaceString(Dataspace dataspace);

    static int32_t GetBytesPerPixel(PixelFormat pixelFormat);

    static void fillBuffer(int32_t width, int32_t height, uint32_t stride, void* bufferData,
@@ -147,6 +151,9 @@ class ReadbackHelper : public ::testing::VtsHalHidlTargetTestBase {

    static bool readbackSupported(const PixelFormat& pixelFormat, const Dataspace& dataspace,
                                  const Error error);

    static const std::vector<ColorMode> colorModes;
    static const std::vector<Dataspace> dataspaces;
};

class ReadbackBuffer {
+589 −425

File changed.

Preview size limit exceeded, changes collapsed.