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

Commit 16dd6e3e authored by Cairn Overturf's avatar Cairn Overturf
Browse files

Remove client drawn shadow code

Shadows will continue to be drawn by surfaceflinger

Bug: 391428079, 375624570
Change-Id: Ic527a091e77d69c6e9529782d283379a2651dea8
Test: Shadows work in free form mode
Flag: com.android.window.flags.ignore_corner_radius_and_shadows
parent bdb3bc4f
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -67,7 +67,6 @@ layer_state_t::layer_state_t()
        reserved(0),
        cornerRadius(0.0f),
        clientDrawnCornerRadius(0.0f),
        clientDrawnShadowRadius(0.0f),
        backgroundBlurRadius(0),
        color(0),
        bufferTransform(0),
@@ -143,7 +142,6 @@ status_t layer_state_t::write(Parcel& output) const
    SAFE_PARCEL(output.write, colorTransform.asArray(), 16 * sizeof(float));
    SAFE_PARCEL(output.writeFloat, cornerRadius);
    SAFE_PARCEL(output.writeFloat, clientDrawnCornerRadius);
    SAFE_PARCEL(output.writeFloat, clientDrawnShadowRadius);
    SAFE_PARCEL(output.writeUint32, backgroundBlurRadius);
    SAFE_PARCEL(output.writeParcelable, metadata);
    SAFE_PARCEL(output.writeFloat, bgColor.r);
@@ -279,7 +277,6 @@ status_t layer_state_t::read(const Parcel& input)
    SAFE_PARCEL(input.read, &colorTransform, 16 * sizeof(float));
    SAFE_PARCEL(input.readFloat, &cornerRadius);
    SAFE_PARCEL(input.readFloat, &clientDrawnCornerRadius);
    SAFE_PARCEL(input.readFloat, &clientDrawnShadowRadius);
    SAFE_PARCEL(input.readUint32, &backgroundBlurRadius);
    SAFE_PARCEL(input.readParcelable, &metadata);

@@ -606,10 +603,6 @@ void layer_state_t::merge(const layer_state_t& other) {
        what |= eClientDrawnCornerRadiusChanged;
        clientDrawnCornerRadius = other.clientDrawnCornerRadius;
    }
    if (other.what & eClientDrawnShadowsChanged) {
        what |= eClientDrawnShadowsChanged;
        clientDrawnShadowRadius = other.clientDrawnShadowRadius;
    }
    if (other.what & eBackgroundBlurRadiusChanged) {
        what |= eBackgroundBlurRadiusChanged;
        backgroundBlurRadius = other.backgroundBlurRadius;
@@ -824,7 +817,6 @@ uint64_t layer_state_t::diff(const layer_state_t& other) const {
    CHECK_DIFF(diff, eLayerStackChanged, other, layerStack);
    CHECK_DIFF(diff, eCornerRadiusChanged, other, cornerRadius);
    CHECK_DIFF(diff, eClientDrawnCornerRadiusChanged, other, clientDrawnCornerRadius);
    CHECK_DIFF(diff, eClientDrawnShadowsChanged, other, clientDrawnShadowRadius);
    CHECK_DIFF(diff, eBackgroundBlurRadiusChanged, other, backgroundBlurRadius);
    if (other.what & eBlurRegionsChanged) diff |= eBlurRegionsChanged;
    if (other.what & eRelativeLayerChanged) {
+0 −11
Original line number Diff line number Diff line
@@ -1688,17 +1688,6 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setClien
    return *this;
}

SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setClientDrawnShadowRadius(
        const sp<SurfaceControl>& sc, float clientDrawnShadowRadius) {
    layer_state_t* s = getLayerState(sc);
    if (!s) {
        mStatus = BAD_INDEX;
        return *this;
    }
    s->what |= layer_state_t::eClientDrawnShadowsChanged;
    s->clientDrawnShadowRadius = clientDrawnShadowRadius;
    return *this;
}
SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBackgroundBlurRadius(
        const sp<SurfaceControl>& sc, int backgroundBlurRadius) {
    layer_state_t* s = getLayerState(sc);
+1 −3
Original line number Diff line number Diff line
@@ -232,7 +232,6 @@ struct layer_state_t {
        ePictureProfileHandleChanged = 0x80000'00000000,
        eAppContentPriorityChanged = 0x100000'00000000,
        eClientDrawnCornerRadiusChanged = 0x200000'00000000,
        eClientDrawnShadowsChanged = 0x400000'00000000,
    };

    layer_state_t();
@@ -276,7 +275,7 @@ struct layer_state_t {
            layer_state_t::eColorSpaceAgnosticChanged | layer_state_t::eColorTransformChanged |
            layer_state_t::eCornerRadiusChanged | layer_state_t::eDimmingEnabledChanged |
            layer_state_t::eHdrMetadataChanged | layer_state_t::eShadowRadiusChanged |
            layer_state_t::eClientDrawnShadowsChanged | layer_state_t::eStretchChanged |
            layer_state_t::eStretchChanged |
            layer_state_t::ePictureProfileHandleChanged | layer_state_t::eAppContentPriorityChanged;

    // Changes which invalidates the layer's visible region in CE.
@@ -336,7 +335,6 @@ struct layer_state_t {
    matrix22_t matrix;
    float cornerRadius;
    float clientDrawnCornerRadius;
    float clientDrawnShadowRadius;
    uint32_t backgroundBlurRadius;

    sp<SurfaceControl> relativeLayerSurfaceControl;
+0 −4
Original line number Diff line number Diff line
@@ -569,10 +569,6 @@ public:
        // radius is drawn by the client and not SurfaceFlinger.
        Transaction& setClientDrawnCornerRadius(const sp<SurfaceControl>& sc,
                                                float clientDrawnCornerRadius);
        // Sets the client drawn shadow radius for the layer. This indicates that the shadows
        // are drawn by the client and not SurfaceFlinger.
        Transaction& setClientDrawnShadowRadius(const sp<SurfaceControl>& sc,
                                                float clientDrawnShadowRadius);
        Transaction& setBackgroundBlurRadius(const sp<SurfaceControl>& sc,
                                             int backgroundBlurRadius);
        Transaction& setBlurRegions(const sp<SurfaceControl>& sc,
+0 −4
Original line number Diff line number Diff line
@@ -46,9 +46,6 @@ struct ShadowSettings {
    // Length of the cast shadow. If length is <= 0.f no shadows will be drawn.
    float length = 0.f;

    // Length of the cast shadow that is drawn by the client.
    float clientDrawnLength = 0.f;

    // If true fill in the casting layer is translucent and the shadow needs to fill the bounds.
    // Otherwise the shadow will only be drawn around the edges of the casting layer.
    bool casterIsTranslucent = false;
@@ -58,7 +55,6 @@ static inline bool operator==(const ShadowSettings& lhs, const ShadowSettings& r
    return lhs.boundaries == rhs.boundaries && lhs.ambientColor == rhs.ambientColor &&
            lhs.spotColor == rhs.spotColor && lhs.lightPos == rhs.lightPos &&
            lhs.lightRadius == rhs.lightRadius && lhs.length == rhs.length &&
            lhs.clientDrawnLength == rhs.clientDrawnLength &&
            lhs.casterIsTranslucent == rhs.casterIsTranslucent;
}

Loading