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

Commit 8bc8dc78 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: I3646a5d649a31cf7f27215b478477dfd003a33cb
parents c7fbe1af 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);
    }