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

Commit f5137c56 authored by Ben Wagner's avatar Ben Wagner Committed by Android (Google) Code Review
Browse files

Merge "Move AlphaFilterCanvas to new API."

parents f2addb1c 62b38941
Loading
Loading
Loading
Loading
+3 −7
Original line number Original line Diff line number Diff line
@@ -187,17 +187,13 @@ public:
    AlphaFilterCanvas(SkCanvas* canvas, float alpha) : SkPaintFilterCanvas(canvas), mAlpha(alpha) {}
    AlphaFilterCanvas(SkCanvas* canvas, float alpha) : SkPaintFilterCanvas(canvas), mAlpha(alpha) {}


protected:
protected:
    bool onFilter(SkTCopyOnFirstWrite<SkPaint>* paint, Type t) const override {
    bool onFilter(SkPaint& paint) const override {
        std::optional<SkPaint> defaultPaint;
        paint.setAlpha((uint8_t)paint.getAlpha() * mAlpha);
        if (!*paint) {
            paint->init(defaultPaint.emplace());
        }
        paint->writable()->setAlpha((uint8_t)(*paint)->getAlpha() * mAlpha);
        return true;
        return true;
    }
    }
    void onDrawDrawable(SkDrawable* drawable, const SkMatrix* matrix) override {
    void onDrawDrawable(SkDrawable* drawable, const SkMatrix* matrix) override {
        // We unroll the drawable using "this" canvas, so that draw calls contained inside will
        // We unroll the drawable using "this" canvas, so that draw calls contained inside will
        // get their alpha applied. THe default SkPaintFilterCanvas::onDrawDrawable does not unroll.
        // get their alpha applied. The default SkPaintFilterCanvas::onDrawDrawable does not unroll.
        drawable->draw(this, matrix);
        drawable->draw(this, matrix);
    }
    }