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

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

Merge "Handle Z in DA"

parents 13ccb79b 293e868b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -168,7 +168,7 @@ void DamageAccumulator::applyRenderNodeTransform(DirtyStack* frame) {
    const RenderProperties& props = frame->renderNode->properties();

    // Perform clipping
    if (props.getClipToBounds() && !frame->pendingDirty.isEmpty()) {
    if (props.getClipDamageToBounds() && !frame->pendingDirty.isEmpty()) {
        if (!frame->pendingDirty.intersect(0, 0, props.getWidth(), props.getHeight())) {
            frame->pendingDirty.setEmpty();
        }
+1 −1
Original line number Diff line number Diff line
@@ -118,7 +118,7 @@ void RenderNode::prepareTree(TreeInfo& info) {

void RenderNode::damageSelf(TreeInfo& info) {
    if (isRenderable() && properties().getAlpha() > 0) {
        if (properties().getClipToBounds()) {
        if (properties().getClipDamageToBounds()) {
            info.damageAccumulator->dirty(0, 0, properties().getWidth(), properties().getHeight());
        } else {
            // Hope this is big enough?
+10 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@
#include "Rect.h"
#include "RevealClip.h"
#include "Outline.h"
#include "utils/MathUtils.h"

class SkBitmap;
class SkColorFilter;
@@ -526,6 +527,15 @@ public:
        return mLayerProperties;
    }

    // Returns true if damage calculations should be clipped to bounds
    // TODO: Figure out something better for getZ(), as children should still be
    // clipped to this RP's bounds. But as we will damage -INT_MAX to INT_MAX
    // for this RP's getZ() anyway, this can be optimized when we have a
    // Z damage estimate instead of INT_MAX
    bool getClipDamageToBounds() const {
        return getClipToBounds() && (getZ() <= 0 || getOutline().isEmpty());
    }

private:

    // Rendering properties