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

Commit 544a4310 authored by Sally Qi's avatar Sally Qi
Browse files

[Lut Shader] Skip the Lut if the Lut building process fails.

- skip this lut instead of crash
- deal with the nullptr return of RasterFromBitmap

Bug: 384023516
Change-Id: Ib30ba1b66dc447e94a2f54759758d80deafdf686
Test: SurfaceControlTest
Flag: EXEMPT no flag needed
parent c1663cb5
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -187,10 +187,16 @@ sk_sp<SkShader> LutShader::generateLutShader(sk_sp<SkShader> input,
    SkBitmap bitmap;
    bitmap.allocPixels(info);
    if (!bitmap.installPixels(info, buffer.data(), info.minRowBytes())) {
        LOG_ALWAYS_FATAL("unable to install pixels");
        ALOGW("bitmap.installPixels failed, skip this Lut!");
        return input;
    }

    sk_sp<SkImage> lutImage = SkImages::RasterFromBitmap(bitmap);
    if (!lutImage) {
        ALOGW("Got a nullptr from SkImages::RasterFromBitmap, skip this Lut!");
        return input;
    }

    mBuilder->child("image") = input;
    mBuilder->child("lut") =
            lutImage->makeRawShader(SkTileMode::kClamp, SkTileMode::kClamp,