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

Commit 73fd79dc authored by John Reck's avatar John Reck Committed by Android (Google) Code Review
Browse files

Merge "Address VRI review comments"

parents 1b17c8ac 0b3f331e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -668,7 +668,7 @@ public class HardwareRenderer {

    /** @hide */
    public void setTargetSdrHdrRatio(float ratio) {
        if (ratio < 1.f || Float.isNaN(ratio) || Float.isInfinite(ratio)) ratio = 1.f;
        if (ratio < 1.f || !Float.isFinite(ratio)) ratio = 1.f;
        nSetTargetSdrHdrRatio(mNativeProxy, ratio);
    }

+3 −0
Original line number Diff line number Diff line
@@ -27,6 +27,9 @@ enum class ColorMode {
    WideColorGamut = 1,
    // Extended range Display P3
    Hdr = 2,
    // Extended range Display P3 10-bit
    // for test purposes only, not shippable due to insuffient alpha
    Hdr10 = 3,
    // Alpha 8
    A8 = 4,
};
+6 −1
Original line number Diff line number Diff line
@@ -646,6 +646,11 @@ void SkiaPipeline::setSurfaceColorProperties(ColorMode colorMode) {
            mSurfaceColorSpace = SkColorSpace::MakeRGB(
                    GetExtendedTransferFunction(mTargetSdrHdrRatio), SkNamedGamut::kDisplayP3);
            break;
        case ColorMode::Hdr10:
            mSurfaceColorType = SkColorType::kRGBA_1010102_SkColorType;
            mSurfaceColorSpace = SkColorSpace::MakeRGB(
                    GetExtendedTransferFunction(mTargetSdrHdrRatio), SkNamedGamut::kDisplayP3);
            break;
        case ColorMode::A8:
            mSurfaceColorType = SkColorType::kAlpha_8_SkColorType;
            mSurfaceColorSpace = nullptr;
@@ -654,7 +659,7 @@ void SkiaPipeline::setSurfaceColorProperties(ColorMode colorMode) {
}

void SkiaPipeline::setTargetSdrHdrRatio(float ratio) {
    if (mColorMode == ColorMode::Hdr) {
    if (mColorMode == ColorMode::Hdr || mColorMode == ColorMode::Hdr10) {
        mTargetSdrHdrRatio = ratio;
        mSurfaceColorSpace = SkColorSpace::MakeRGB(GetExtendedTransferFunction(mTargetSdrHdrRatio),
                                                   SkNamedGamut::kDisplayP3);
+5 −2
Original line number Diff line number Diff line
@@ -301,7 +301,8 @@ void CanvasContext::setOpaque(bool opaque) {

float CanvasContext::setColorMode(ColorMode mode) {
    if (mode != mColorMode) {
        if (mode == ColorMode::Hdr && !mRenderPipeline->supportsExtendedRangeHdr()) {
        const bool isHdr = mode == ColorMode::Hdr || mode == ColorMode::Hdr10;
        if (isHdr && !mRenderPipeline->supportsExtendedRangeHdr()) {
            mode = ColorMode::WideColorGamut;
        }
        mColorMode = mode;
@@ -311,13 +312,15 @@ float CanvasContext::setColorMode(ColorMode mode) {
    switch (mColorMode) {
        case ColorMode::Hdr:
            return 3.f;  // TODO: Refine this number
        case ColorMode::Hdr10:
            return 10.f;
        default:
            return 1.f;
    }
}

float CanvasContext::targetSdrHdrRatio() const {
    if (mColorMode == ColorMode::Hdr) {
    if (mColorMode == ColorMode::Hdr || mColorMode == ColorMode::Hdr10) {
        return mTargetSdrHdrRatio;
    } else {
        return 1.f;
+1 −0
Original line number Diff line number Diff line
@@ -455,6 +455,7 @@ Result<EGLSurface, EGLint> EglManager::createSurface(EGLNativeWindowType window,
                // composer3 support, just treat HDR as equivalent to wide color gamut if
                // the GLES path is still being hit
                case ColorMode::Hdr:
                case ColorMode::Hdr10:
                case ColorMode::WideColorGamut: {
                    skcms_Matrix3x3 colorGamut;
                    LOG_ALWAYS_FATAL_IF(!colorSpace->toXYZD50(&colorGamut),
Loading