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

Commit d9ddeab7 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: Ia31a4b3e98b4852ed5d2c0988be8cf89e9911cbc
parents 1e65f6e7 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);
    }