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

Commit e0cf5975 authored by Brian Osman's avatar Brian Osman Committed by Derek Sollenberger
Browse files

Remove use of SkColorSpace::Gamut enum

Get the gamut matrix from the color space, compare against sRGB/P3.

Test: Refactoring CL.
Change-Id: I9f5bcae8c1f637919ee9da892266ea882f16208c
parent 8d3707bb
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -62,10 +62,8 @@ DisplayInfo QueryDisplayInfo() {
    return displayInfo;
}

static void queryWideColorGamutPreference(SkColorSpace::Gamut* colorGamut,
                                          sk_sp<SkColorSpace>* colorSpace, SkColorType* colorType) {
static void queryWideColorGamutPreference(sk_sp<SkColorSpace>* colorSpace, SkColorType* colorType) {
    if (Properties::isolatedProcess) {
        *colorGamut = SkColorSpace::Gamut::kSRGB_Gamut;
        *colorSpace = SkColorSpace::MakeSRGB();
        *colorType = SkColorType::kN32_SkColorType;
        return;
@@ -78,16 +76,13 @@ static void queryWideColorGamutPreference(SkColorSpace::Gamut* colorGamut,
    LOG_ALWAYS_FATAL_IF(status, "Failed to get composition preference, error %d", status);
    switch (wcgDataspace) {
        case ui::Dataspace::DISPLAY_P3:
            *colorGamut = SkColorSpace::Gamut::kDCIP3_D65_Gamut;
            *colorSpace = SkColorSpace::MakeRGB(SkNamedTransferFn::kSRGB, SkNamedGamut::kDCIP3);
            break;
        case ui::Dataspace::V0_SCRGB:
            *colorGamut = SkColorSpace::Gamut::kSRGB_Gamut;
            *colorSpace = SkColorSpace::MakeSRGB();
            break;
        case ui::Dataspace::V0_SRGB:
            // when sRGB is returned, it means wide color gamut is not supported.
            *colorGamut = SkColorSpace::Gamut::kSRGB_Gamut;
            *colorSpace = SkColorSpace::MakeSRGB();
            break;
        default:
@@ -112,7 +107,7 @@ DeviceInfo::DeviceInfo() {
        mMaxTextureSize = -1;
#endif
    mDisplayInfo = QueryDisplayInfo();
    queryWideColorGamutPreference(&mWideColorGamut, &mWideColorSpace, &mWideColorType);
    queryWideColorGamutPreference(&mWideColorSpace, &mWideColorType);
}

int DeviceInfo::maxTextureSize() const {
+0 −2
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@ public:
    // context or if you are using the HWUI_NULL_GPU
    int maxTextureSize() const;
    const DisplayInfo& displayInfo() const { return mDisplayInfo; }
    SkColorSpace::Gamut getWideColorGamut() const { return mWideColorGamut; }
    sk_sp<SkColorSpace> getWideColorSpace() const { return mWideColorSpace; }
    SkColorType getWideColorType() const { return mWideColorType; }

@@ -50,7 +49,6 @@ private:

    int mMaxTextureSize;
    DisplayInfo mDisplayInfo;
    SkColorSpace::Gamut mWideColorGamut;
    sk_sp<SkColorSpace> mWideColorSpace;
    SkColorType mWideColorType;
};
+1 −1
Original line number Diff line number Diff line
@@ -167,7 +167,7 @@ bool SkiaOpenGLPipeline::setSurface(ANativeWindow* surface, SwapBehavior swapBeh

    if (surface) {
        mRenderThread.requireGlContext();
        auto newSurface = mEglManager.createSurface(surface, colorMode, mSurfaceColorGamut);
        auto newSurface = mEglManager.createSurface(surface, colorMode, mSurfaceColorSpace);
        if (!newSurface) {
            return false;
        }
+0 −2
Original line number Diff line number Diff line
@@ -476,11 +476,9 @@ void SkiaPipeline::dumpResourceCacheUsage() const {
void SkiaPipeline::setSurfaceColorProperties(ColorMode colorMode) {
    if (colorMode == ColorMode::SRGB) {
        mSurfaceColorType = SkColorType::kN32_SkColorType;
        mSurfaceColorGamut = SkColorSpace::Gamut::kSRGB_Gamut;
        mSurfaceColorSpace = SkColorSpace::MakeSRGB();
    } else if (colorMode == ColorMode::WideColorGamut) {
        mSurfaceColorType = DeviceInfo::get()->getWideColorType();
        mSurfaceColorGamut = DeviceInfo::get()->getWideColorGamut();
        mSurfaceColorSpace = DeviceInfo::get()->getWideColorSpace();
    } else {
        LOG_ALWAYS_FATAL("Unreachable: unsupported color mode.");
+0 −1
Original line number Diff line number Diff line
@@ -116,7 +116,6 @@ protected:

    renderthread::RenderThread& mRenderThread;
    SkColorType mSurfaceColorType;
    SkColorSpace::Gamut mSurfaceColorGamut;
    sk_sp<SkColorSpace> mSurfaceColorSpace;

private:
Loading