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

Commit f58c14b3 authored by Marissa Wall's avatar Marissa Wall
Browse files

blast: Append "_legacy" to old buffer state values

As we move from BufferQueueLayer to BufferStateLayer, some
layer state fields are used by both layer types and some
are used exclusively by one type of layer. Append "_legacy"
to all fields that are NOT used by BufferStateLayer.

Bug: 80477568
Test: Transaction_test.cpp
Change-Id: Id8bf27f5b68c00592136e4336442a5d388f35779
parent 1130324c
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -489,7 +489,7 @@ void Replayer::setCrop(SurfaceComposerClient::Transaction& t,


    Rect r = Rect(cc.rectangle().left(), cc.rectangle().top(), cc.rectangle().right(),
    Rect r = Rect(cc.rectangle().left(), cc.rectangle().top(), cc.rectangle().right(),
            cc.rectangle().bottom());
            cc.rectangle().bottom());
    t.setCrop(mLayers[id], r);
    t.setCrop_legacy(mLayers[id], r);
}
}


void Replayer::setFinalCrop(SurfaceComposerClient::Transaction& t,
void Replayer::setFinalCrop(SurfaceComposerClient::Transaction& t,
@@ -499,7 +499,7 @@ void Replayer::setFinalCrop(SurfaceComposerClient::Transaction& t,
            fcc.rectangle().bottom());
            fcc.rectangle().bottom());
    Rect r = Rect(fcc.rectangle().left(), fcc.rectangle().top(), fcc.rectangle().right(),
    Rect r = Rect(fcc.rectangle().left(), fcc.rectangle().top(), fcc.rectangle().right(),
            fcc.rectangle().bottom());
            fcc.rectangle().bottom());
    t.setFinalCrop(mLayers[id], r);
    t.setFinalCrop_legacy(mLayers[id], r);
}
}


void Replayer::setMatrix(SurfaceComposerClient::Transaction& t,
void Replayer::setMatrix(SurfaceComposerClient::Transaction& t,
@@ -570,7 +570,7 @@ void Replayer::setDeferredTransaction(SurfaceComposerClient::Transaction& t,


    auto handle = mLayers[dtc.layer_id()]->getHandle();
    auto handle = mLayers[dtc.layer_id()]->getHandle();


    t.deferTransactionUntil(mLayers[id], handle, dtc.frame_number());
    t.deferTransactionUntil_legacy(mLayers[id], handle, dtc.frame_number());
}
}


void Replayer::setDisplaySurface(SurfaceComposerClient::Transaction& t,
void Replayer::setDisplaySurface(SurfaceComposerClient::Transaction& t,
+21 −22
Original line number Original line Diff line number Diff line
@@ -37,13 +37,13 @@ status_t layer_state_t::write(Parcel& output) const
    output.writeUint32(mask);
    output.writeUint32(mask);
    *reinterpret_cast<layer_state_t::matrix22_t *>(
    *reinterpret_cast<layer_state_t::matrix22_t *>(
            output.writeInplace(sizeof(layer_state_t::matrix22_t))) = matrix;
            output.writeInplace(sizeof(layer_state_t::matrix22_t))) = matrix;
    output.write(crop);
    output.write(crop_legacy);
    output.write(finalCrop);
    output.write(finalCrop_legacy);
    output.writeStrongBinder(barrierHandle);
    output.writeStrongBinder(barrierHandle_legacy);
    output.writeStrongBinder(reparentHandle);
    output.writeStrongBinder(reparentHandle);
    output.writeUint64(frameNumber);
    output.writeUint64(frameNumber_legacy);
    output.writeInt32(overrideScalingMode);
    output.writeInt32(overrideScalingMode);
    output.writeStrongBinder(IInterface::asBinder(barrierGbp));
    output.writeStrongBinder(IInterface::asBinder(barrierGbp_legacy));
    output.writeStrongBinder(relativeLayerHandle);
    output.writeStrongBinder(relativeLayerHandle);
    output.writeStrongBinder(parentHandleForChild);
    output.writeStrongBinder(parentHandleForChild);
    output.writeFloat(color.r);
    output.writeFloat(color.r);
@@ -72,14 +72,13 @@ status_t layer_state_t::read(const Parcel& input)
    } else {
    } else {
        return BAD_VALUE;
        return BAD_VALUE;
    }
    }
    input.read(crop);
    input.read(crop_legacy);
    input.read(finalCrop);
    input.read(finalCrop_legacy);
    barrierHandle = input.readStrongBinder();
    barrierHandle_legacy = input.readStrongBinder();
    reparentHandle = input.readStrongBinder();
    reparentHandle = input.readStrongBinder();
    frameNumber = input.readUint64();
    frameNumber_legacy = input.readUint64();
    overrideScalingMode = input.readInt32();
    overrideScalingMode = input.readInt32();
    barrierGbp =
    barrierGbp_legacy = interface_cast<IGraphicBufferProducer>(input.readStrongBinder());
        interface_cast<IGraphicBufferProducer>(input.readStrongBinder());
    relativeLayerHandle = input.readStrongBinder();
    relativeLayerHandle = input.readStrongBinder();
    parentHandleForChild = input.readStrongBinder();
    parentHandleForChild = input.readStrongBinder();
    color.r = input.readFloat();
    color.r = input.readFloat();
@@ -194,19 +193,19 @@ void layer_state_t::merge(const layer_state_t& other) {
        what |= eLayerStackChanged;
        what |= eLayerStackChanged;
        layerStack = other.layerStack;
        layerStack = other.layerStack;
    }
    }
    if (other.what & eCropChanged) {
    if (other.what & eCropChanged_legacy) {
        what |= eCropChanged;
        what |= eCropChanged_legacy;
        crop = other.crop;
        crop_legacy = other.crop_legacy;
    }
    }
    if (other.what & eDeferTransaction) {
    if (other.what & eDeferTransaction_legacy) {
        what |= eDeferTransaction;
        what |= eDeferTransaction_legacy;
        barrierHandle = other.barrierHandle;
        barrierHandle_legacy = other.barrierHandle_legacy;
        barrierGbp = other.barrierGbp;
        barrierGbp_legacy = other.barrierGbp_legacy;
        frameNumber = other.frameNumber;
        frameNumber_legacy = other.frameNumber_legacy;
    }
    }
    if (other.what & eFinalCropChanged) {
    if (other.what & eFinalCropChanged_legacy) {
        what |= eFinalCropChanged;
        what |= eFinalCropChanged_legacy;
        finalCrop = other.finalCrop;
        finalCrop_legacy = other.finalCrop_legacy;
    }
    }
    if (other.what & eOverrideScalingModeChanged) {
    if (other.what & eOverrideScalingModeChanged) {
        what |= eOverrideScalingModeChanged;
        what |= eOverrideScalingModeChanged;
+21 −18
Original line number Original line Diff line number Diff line
@@ -344,54 +344,57 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setMatri
    return *this;
    return *this;
}
}


SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setCrop(
SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setCrop_legacy(
        const sp<SurfaceControl>& sc, const Rect& crop) {
        const sp<SurfaceControl>& sc, const Rect& crop) {
    layer_state_t* s = getLayerState(sc);
    layer_state_t* s = getLayerState(sc);
    if (!s) {
    if (!s) {
        mStatus = BAD_INDEX;
        mStatus = BAD_INDEX;
        return *this;
        return *this;
    }
    }
    s->what |= layer_state_t::eCropChanged;
    s->what |= layer_state_t::eCropChanged_legacy;
    s->crop = crop;
    s->crop_legacy = crop;
    return *this;
    return *this;
}
}


SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setFinalCrop(const sp<SurfaceControl>& sc, const Rect& crop) {
SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setFinalCrop_legacy(
        const sp<SurfaceControl>& sc, const Rect& crop) {
    layer_state_t* s = getLayerState(sc);
    layer_state_t* s = getLayerState(sc);
    if (!s) {
    if (!s) {
        mStatus = BAD_INDEX;
        mStatus = BAD_INDEX;
        return *this;
        return *this;
    }
    }
    s->what |= layer_state_t::eFinalCropChanged;
    s->what |= layer_state_t::eFinalCropChanged_legacy;
    s->finalCrop = crop;
    s->finalCrop_legacy = crop;
    return *this;
    return *this;
}
}


SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::deferTransactionUntil(
SurfaceComposerClient::Transaction&
        const sp<SurfaceControl>& sc,
SurfaceComposerClient::Transaction::deferTransactionUntil_legacy(const sp<SurfaceControl>& sc,
        const sp<IBinder>& handle, uint64_t frameNumber) {
                                                                 const sp<IBinder>& handle,
                                                                 uint64_t frameNumber) {
    layer_state_t* s = getLayerState(sc);
    layer_state_t* s = getLayerState(sc);
    if (!s) {
    if (!s) {
        mStatus = BAD_INDEX;
        mStatus = BAD_INDEX;
        return *this;
        return *this;
    }
    }
    s->what |= layer_state_t::eDeferTransaction;
    s->what |= layer_state_t::eDeferTransaction_legacy;
    s->barrierHandle = handle;
    s->barrierHandle_legacy = handle;
    s->frameNumber = frameNumber;
    s->frameNumber_legacy = frameNumber;
    return *this;
    return *this;
}
}


SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::deferTransactionUntil(
SurfaceComposerClient::Transaction&
        const sp<SurfaceControl>& sc,
SurfaceComposerClient::Transaction::deferTransactionUntil_legacy(const sp<SurfaceControl>& sc,
        const sp<Surface>& barrierSurface, uint64_t frameNumber) {
                                                                 const sp<Surface>& barrierSurface,
                                                                 uint64_t frameNumber) {
    layer_state_t* s = getLayerState(sc);
    layer_state_t* s = getLayerState(sc);
    if (!s) {
    if (!s) {
        mStatus = BAD_INDEX;
        mStatus = BAD_INDEX;
        return *this;
        return *this;
    }
    }
    s->what |= layer_state_t::eDeferTransaction;
    s->what |= layer_state_t::eDeferTransaction_legacy;
    s->barrierGbp = barrierSurface->getIGraphicBufferProducer();
    s->barrierGbp_legacy = barrierSurface->getIGraphicBufferProducer();
    s->frameNumber = frameNumber;
    s->frameNumber_legacy = frameNumber;
    return *this;
    return *this;
}
}


+11 −11
Original line number Original line Diff line number Diff line
@@ -51,9 +51,9 @@ struct layer_state_t {
        eTransparentRegionChanged = 0x00000020,
        eTransparentRegionChanged = 0x00000020,
        eFlagsChanged = 0x00000040,
        eFlagsChanged = 0x00000040,
        eLayerStackChanged = 0x00000080,
        eLayerStackChanged = 0x00000080,
        eCropChanged = 0x00000100,
        eCropChanged_legacy = 0x00000100,
        eDeferTransaction = 0x00000200,
        eDeferTransaction_legacy = 0x00000200,
        eFinalCropChanged = 0x00000400,
        eFinalCropChanged_legacy = 0x00000400,
        eOverrideScalingModeChanged = 0x00000800,
        eOverrideScalingModeChanged = 0x00000800,
        eGeometryAppliesWithResize = 0x00001000,
        eGeometryAppliesWithResize = 0x00001000,
        eReparentChildren = 0x00002000,
        eReparentChildren = 0x00002000,
@@ -76,9 +76,9 @@ struct layer_state_t {
            flags(0),
            flags(0),
            mask(0),
            mask(0),
            reserved(0),
            reserved(0),
            crop(Rect::INVALID_RECT),
            crop_legacy(Rect::INVALID_RECT),
            finalCrop(Rect::INVALID_RECT),
            finalCrop_legacy(Rect::INVALID_RECT),
            frameNumber(0),
            frameNumber_legacy(0),
            overrideScalingMode(-1) {
            overrideScalingMode(-1) {
        matrix.dsdx = matrix.dtdy = 1.0f;
        matrix.dsdx = matrix.dtdy = 1.0f;
        matrix.dsdy = matrix.dtdx = 0.0f;
        matrix.dsdy = matrix.dtdx = 0.0f;
@@ -107,14 +107,14 @@ struct layer_state_t {
    uint8_t mask;
    uint8_t mask;
    uint8_t reserved;
    uint8_t reserved;
    matrix22_t matrix;
    matrix22_t matrix;
    Rect crop;
    Rect crop_legacy;
    Rect finalCrop;
    Rect finalCrop_legacy;
    sp<IBinder> barrierHandle;
    sp<IBinder> barrierHandle_legacy;
    sp<IBinder> reparentHandle;
    sp<IBinder> reparentHandle;
    uint64_t frameNumber;
    uint64_t frameNumber_legacy;
    int32_t overrideScalingMode;
    int32_t overrideScalingMode;


    sp<IGraphicBufferProducer> barrierGbp;
    sp<IGraphicBufferProducer> barrierGbp_legacy;


    sp<IBinder> relativeLayerHandle;
    sp<IBinder> relativeLayerHandle;


+8 −9
Original line number Original line Diff line number Diff line
@@ -200,20 +200,19 @@ public:
                float alpha);
                float alpha);
        Transaction& setMatrix(const sp<SurfaceControl>& sc,
        Transaction& setMatrix(const sp<SurfaceControl>& sc,
                float dsdx, float dtdx, float dtdy, float dsdy);
                float dsdx, float dtdx, float dtdy, float dsdy);
        Transaction& setCrop(const sp<SurfaceControl>& sc, const Rect& crop);
        Transaction& setCrop_legacy(const sp<SurfaceControl>& sc, const Rect& crop);
        Transaction& setFinalCrop(const sp<SurfaceControl>& sc, const Rect& crop);
        Transaction& setFinalCrop_legacy(const sp<SurfaceControl>& sc, const Rect& crop);
        Transaction& setLayerStack(const sp<SurfaceControl>& sc, uint32_t layerStack);
        Transaction& setLayerStack(const sp<SurfaceControl>& sc, uint32_t layerStack);
        // Defers applying any changes made in this transaction until the Layer
        // Defers applying any changes made in this transaction until the Layer
        // identified by handle reaches the given frameNumber. If the Layer identified
        // identified by handle reaches the given frameNumber. If the Layer identified
        // by handle is removed, then we will apply this transaction regardless of
        // by handle is removed, then we will apply this transaction regardless of
        // what frame number has been reached.
        // what frame number has been reached.
        Transaction& deferTransactionUntil(const sp<SurfaceControl>& sc,
        Transaction& deferTransactionUntil_legacy(const sp<SurfaceControl>& sc,
                const sp<IBinder>& handle,
                                                  const sp<IBinder>& handle, uint64_t frameNumber);
                uint64_t frameNumber);
        // A variant of deferTransactionUntil_legacy which identifies the Layer we wait for by
        // A variant of deferTransactionUntil which identifies the Layer we wait for by
        // Surface instead of Handle. Useful for clients which may not have the
        // Surface instead of Handle. Useful for clients which may not have the
        // SurfaceControl for some of their Surfaces. Otherwise behaves identically.
        // SurfaceControl for some of their Surfaces. Otherwise behaves identically.
        Transaction& deferTransactionUntil(const sp<SurfaceControl>& sc,
        Transaction& deferTransactionUntil_legacy(const sp<SurfaceControl>& sc,
                                                  const sp<Surface>& barrierSurface,
                                                  const sp<Surface>& barrierSurface,
                                                  uint64_t frameNumber);
                                                  uint64_t frameNumber);
        // Reparents all children of this layer to the new parent handle.
        // Reparents all children of this layer to the new parent handle.
Loading