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

Commit 5d8343b8 authored by Chris Craik's avatar Chris Craik Committed by Android Git Automerger
Browse files

am a85db5ab: Merge "libhwui: Handle the blurImage() implement once RS::init fail"

* commit 'a85db5ab':
  libhwui: Handle the blurImage() implement once RS::init fail
parents 09446329 a85db5ab
Loading
Loading
Loading
Loading
+24 −20
Original line number Diff line number Diff line
@@ -735,19 +735,22 @@ void FontRenderer::blurImage(uint8_t** image, int32_t width, int32_t height, int
            // a null path is OK because there are no custom kernels used
            // hence nothing gets cached by RS
            if (!mRs->init("", RSC::RS_INIT_LOW_LATENCY | RSC::RS_INIT_SYNCHRONOUS)) {
                mRs.clear();
                ALOGE("blur RS failed to init");
            }

            } else {
                mRsElement = RSC::Element::A_8(mRs);
                mRsScript = RSC::ScriptIntrinsicBlur::create(mRs, mRsElement);
            }

        }
        if (mRs != 0) {
            RSC::sp<const RSC::Type> t = RSC::Type::create(mRs, mRsElement, width, height, 0);
            RSC::sp<RSC::Allocation> ain = RSC::Allocation::createTyped(mRs, t,
                RS_ALLOCATION_MIPMAP_NONE, RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED,
                    RS_ALLOCATION_MIPMAP_NONE,
                    RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED,
                    *image);
            RSC::sp<RSC::Allocation> aout = RSC::Allocation::createTyped(mRs, t,
                RS_ALLOCATION_MIPMAP_NONE, RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED,
                    RS_ALLOCATION_MIPMAP_NONE,
                    RS_ALLOCATION_USAGE_SCRIPT | RS_ALLOCATION_USAGE_SHARED,
                    outImage);

            mRsScript->setRadius(radius);
@@ -760,6 +763,7 @@ void FontRenderer::blurImage(uint8_t** image, int32_t width, int32_t height, int

            return;
        }
    }
#endif

    float *gaussian = new float[2 * radius + 1];