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

Commit 88180d26 authored by Chris Craik's avatar Chris Craik Committed by Android (Google) Code Review
Browse files

Merge "Fix layer shadow transform crash" into lmp-dev

parents fffe00df c71bfcaa
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -214,7 +214,7 @@ void DamageAccumulator::dirty(float left, float top, float right, float bottom)
    mHead->pendingDirty.join(left, top, right, bottom);
    mHead->pendingDirty.join(left, top, right, bottom);
}
}


void DamageAccumulator::peekAtDirty(SkRect* dest) {
void DamageAccumulator::peekAtDirty(SkRect* dest) const {
    *dest = mHead->pendingDirty;
    *dest = mHead->pendingDirty;
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -50,7 +50,7 @@ public:
    void dirty(float left, float top, float right, float bottom);
    void dirty(float left, float top, float right, float bottom);


    // Returns the current dirty area, *NOT* transformed by pushed transforms
    // Returns the current dirty area, *NOT* transformed by pushed transforms
    void peekAtDirty(SkRect* dest);
    void peekAtDirty(SkRect* dest) const;


    void computeCurrentTransform(Matrix4* outMatrix) const;
    void computeCurrentTransform(Matrix4* outMatrix) const;


+6 −7
Original line number Original line Diff line number Diff line
@@ -179,13 +179,6 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) {
        transformUpdateNeeded = true;
        transformUpdateNeeded = true;
    }
    }


    if (transformUpdateNeeded) {
        // update the transform in window of the layer to reset its origin wrt light source position
        Matrix4 windowTransform;
        info.damageAccumulator->computeCurrentTransform(&windowTransform);
        mLayer->setWindowTransform(windowTransform);
    }

    SkRect dirty;
    SkRect dirty;
    info.damageAccumulator->peekAtDirty(&dirty);
    info.damageAccumulator->peekAtDirty(&dirty);


@@ -198,6 +191,12 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) {
        return;
        return;
    }
    }


    if (transformUpdateNeeded) {
        // update the transform in window of the layer to reset its origin wrt light source position
        Matrix4 windowTransform;
        info.damageAccumulator->computeCurrentTransform(&windowTransform);
        mLayer->setWindowTransform(windowTransform);
    }


    if (dirty.intersect(0, 0, getWidth(), getHeight())) {
    if (dirty.intersect(0, 0, getWidth(), getHeight())) {
        dirty.roundOut();
        dirty.roundOut();