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

Commit 0cde87d4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add shadow radius and corner radius crop to sf and transaction trace"

parents 032c995d 95a1ed40
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ message SurfaceChange {
        RelativeParentChange        relative_parent         = 18;
        DetachChildrenChange        detach_children         = 19;
        ReparentChildrenChange      reparent_children       = 20;
        ShadowRadiusChange          shadow_radius           = 22;
    }
}

@@ -199,3 +200,7 @@ message RelativeParentChange {
message DetachChildrenChange {
    required bool detach_children = 1;
}

message ShadowRadiusChange {
    required float radius = 1;
}
 No newline at end of file
+8 −0
Original line number Diff line number Diff line
@@ -424,6 +424,9 @@ status_t Replayer::doSurfaceTransaction(
            case SurfaceChange::SurfaceChangeCase::kDetachChildren:
                setDetachChildrenChange(transaction, change.id(), change.detach_children());
                break;
            case SurfaceChange::SurfaceChangeCase::kShadowRadius:
                setShadowRadiusChange(transaction, change.id(), change.shadow_radius());
                break;
            default:
                status = 1;
                break;
@@ -724,3 +727,8 @@ void Replayer::setReparentChildrenChange(SurfaceComposerClient::Transaction& t,
    }
    t.reparentChildren(mLayers[id], mLayers[c.parent_id()]->getHandle());
}

void Replayer::setShadowRadiusChange(SurfaceComposerClient::Transaction& t,
        layer_id id, const ShadowRadiusChange& c) {
    t.setShadowRadius(mLayers[id], c.radius());
}
+2 −0
Original line number Diff line number Diff line
@@ -118,6 +118,8 @@ class Replayer {
            layer_id id, const DetachChildrenChange& c);
    void setReparentChildrenChange(SurfaceComposerClient::Transaction& t,
            layer_id id, const ReparentChildrenChange& c);
    void setShadowRadiusChange(SurfaceComposerClient::Transaction& t,
            layer_id id, const ShadowRadiusChange& c);

    void setDisplaySurface(SurfaceComposerClient::Transaction& t,
            display_id id, const DispSurfaceChange& dsc);
+3 −0
Original line number Diff line number Diff line
@@ -1937,6 +1937,9 @@ void Layer::writeToProtoDrawingState(LayerProto* layerInfo, uint32_t traceFlags)
                                       [&]() { return layerInfo->mutable_source_bounds(); });
        LayerProtoHelper::writeToProto(mScreenBounds,
                                       [&]() { return layerInfo->mutable_screen_bounds(); });
        LayerProtoHelper::writeToProto(getRoundedCornerState().cropRect,
                                       [&]() { return layerInfo->mutable_corner_radius_crop(); });
        layerInfo->set_shadow_radius(mEffectiveShadowRadius);
    }
}

+11 −0
Original line number Diff line number Diff line
@@ -124,6 +124,7 @@ void SurfaceInterceptor::addInitialSurfaceStateLocked(Increment* increment,
    addRelativeParentLocked(transaction, layerId,
                            getLayerIdFromWeakRef(layer->mCurrentState.zOrderRelativeOf),
                            layer->mCurrentState.z);
    addShadowRadiusLocked(transaction, layerId, layer->mCurrentState.shadowRadius);
}

void SurfaceInterceptor::addInitialDisplayStateLocked(Increment* increment,
@@ -368,6 +369,13 @@ void SurfaceInterceptor::addRelativeParentLocked(Transaction* transaction, int32
    overrideChange->set_z(z);
}

void SurfaceInterceptor::addShadowRadiusLocked(Transaction* transaction, int32_t layerId,
                                               float shadowRadius) {
    SurfaceChange* change(createSurfaceChangeLocked(transaction, layerId));
    ShadowRadiusChange* overrideChange(change->mutable_shadow_radius());
    overrideChange->set_radius(shadowRadius);
}

void SurfaceInterceptor::addSurfaceChangesLocked(Transaction* transaction,
        const layer_state_t& state)
{
@@ -441,6 +449,9 @@ void SurfaceInterceptor::addSurfaceChangesLocked(Transaction* transaction,
        addRelativeParentLocked(transaction, layerId,
                                getLayerIdFromHandle(state.relativeLayerHandle), state.z);
    }
    if (state.what & layer_state_t::eShadowRadiusChanged) {
        addShadowRadiusLocked(transaction, layerId, state.shadowRadius);
    }
}

void SurfaceInterceptor::addDisplayChangesLocked(Transaction* transaction,
Loading