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

Commit 525855ba authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix color shift between gles and skiagl without color management" into sc-dev am: 4019c52f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/15132881

Change-Id: Ie719d9a4eb5850ab2083d675cc7704d59ea76a4d
parents 98fef8df 4019c52f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -618,9 +618,9 @@ sk_sp<SkShader> SkiaGLRenderEngine::createRuntimeEffectShader(

    if (requiresLinearEffect) {
        const ui::Dataspace inputDataspace =
                mUseColorManagement ? layer->sourceDataspace : ui::Dataspace::UNKNOWN;
                mUseColorManagement ? layer->sourceDataspace : ui::Dataspace::V0_SRGB_LINEAR;
        const ui::Dataspace outputDataspace =
                mUseColorManagement ? display.outputDataspace : ui::Dataspace::UNKNOWN;
                mUseColorManagement ? display.outputDataspace : ui::Dataspace::V0_SRGB_LINEAR;

        LinearEffect effect = LinearEffect{.inputDataspace = inputDataspace,
                                           .outputDataspace = outputDataspace,
@@ -762,7 +762,7 @@ status_t SkiaGLRenderEngine::drawLayers(const DisplaySettings& display,
    }

    const ui::Dataspace dstDataspace =
            mUseColorManagement ? display.outputDataspace : ui::Dataspace::UNKNOWN;
            mUseColorManagement ? display.outputDataspace : ui::Dataspace::V0_SRGB_LINEAR;
    sk_sp<SkSurface> dstSurface = surfaceTextureRef->getOrCreateSurface(dstDataspace, grContext);

    SkCanvas* dstCanvas = mCapture->tryCapture(dstSurface.get());
+5 −8
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ public:
                        .setSupportsBackgroundBlur(true)
                        .setContextPriority(renderengine::RenderEngine::ContextPriority::MEDIUM)
                        .setRenderEngineType(type())
                        .setUseColorManagerment(useColorManagement())
                        .build();
        return renderengine::gl::GLESRenderEngine::create(reCreationArgs);
    }
@@ -110,7 +111,7 @@ public:
                        .setSupportsBackgroundBlur(true)
                        .setContextPriority(renderengine::RenderEngine::ContextPriority::MEDIUM)
                        .setRenderEngineType(type())
                        .setUseColorManagerment(true)
                        .setUseColorManagerment(useColorManagement())
                        .build();
        return renderengine::gl::GLESRenderEngine::create(reCreationArgs);
    }
@@ -136,16 +137,12 @@ public:
                        .setSupportsBackgroundBlur(true)
                        .setContextPriority(renderengine::RenderEngine::ContextPriority::MEDIUM)
                        .setRenderEngineType(type())
                        // FIXME (b/189935602): This version is currently color managed.
                        // We should change it and fix the tests that fail.
                        //.setUseColorManagerment(false)
                        .setUseColorManagerment(useColorManagement())
                        .build();
        return renderengine::skia::SkiaGLRenderEngine::create(reCreationArgs);
    }

    // FIXME (b/189935602): This version is currently color managed.
    // We should change it and fix the tests that fail.
    bool useColorManagement() const override { return true; }
    bool useColorManagement() const override { return false; }
};

class SkiaGLESCMRenderEngineFactory : public RenderEngineFactory {
@@ -166,7 +163,7 @@ public:
                        .setSupportsBackgroundBlur(true)
                        .setContextPriority(renderengine::RenderEngine::ContextPriority::MEDIUM)
                        .setRenderEngineType(type())
                        .setUseColorManagerment(true)
                        .setUseColorManagerment(useColorManagement())
                        .build();
        return renderengine::skia::SkiaGLRenderEngine::create(reCreationArgs);
    }