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

Commit 2e09daf3 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 7952937 from f2cf7639 to sc-v2-release

Change-Id: Iea8c6feaff3595322af47d8fbda5f2160afbb297
parents a5e031ef f2cf7639
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -988,4 +988,9 @@ uint32_t BLASTBufferQueue::getLastTransformHint() const {
    }
}

uint64_t BLASTBufferQueue::getLastAcquiredFrameNum() {
    std::unique_lock _lock{mMutex};
    return mLastAcquiredFrameNumber;
}

} // namespace android
+2 −0
Original line number Diff line number Diff line
@@ -110,6 +110,8 @@ public:
    uint32_t getLastTransformHint() const;
    void flushShadowQueue();

    uint64_t getLastAcquiredFrameNum();

    virtual ~BLASTBufferQueue();

private:
+1 −1
Original line number Diff line number Diff line
@@ -831,7 +831,7 @@ void BufferLayer::updateCloneBufferInfo() {
    wp<Layer> tmpTouchableRegionCrop = mDrawingState.touchableRegionCrop;
    WindowInfo tmpInputInfo = mDrawingState.inputInfo;

    mDrawingState = clonedFrom->mDrawingState;
    cloneDrawingState(clonedFrom.get());

    mDrawingState.touchableRegionCrop = tmpTouchableRegionCrop;
    mDrawingState.zOrderRelativeOf = tmpZOrderRelativeOf;
+1 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ BufferStateLayer::~BufferStateLayer() {
    // one of the layers, in this case the original layer, needs to handle the deletion. The
    // original layer and the clone should be removed at the same time so there shouldn't be any
    // issue with the clone layer trying to use the texture.
    if (mBufferInfo.mBuffer != nullptr && !isClone()) {
    if (mBufferInfo.mBuffer != nullptr) {
        callReleaseBufferCallback(mDrawingState.releaseBufferListener,
                                  mBufferInfo.mBuffer->getBuffer(), mBufferInfo.mFrameNumber,
                                  mBufferInfo.mFence, mTransformHint,
+9 −3
Original line number Diff line number Diff line
@@ -2485,8 +2485,7 @@ Region Layer::getVisibleRegion(const DisplayDevice* display) const {
}

void Layer::setInitialValuesForClone(const sp<Layer>& clonedFrom) {
    // copy drawing state from cloned layer
    mDrawingState = clonedFrom->mDrawingState;
    cloneDrawingState(clonedFrom.get());
    mClonedFrom = clonedFrom;
}

@@ -2521,7 +2520,7 @@ void Layer::updateClonedDrawingState(std::map<sp<Layer>, sp<Layer>>& clonedLayer
    // since we may be able to pull out other children that are still alive.
    if (isClonedFromAlive()) {
        sp<Layer> clonedFrom = getClonedFrom();
        mDrawingState = clonedFrom->mDrawingState;
        cloneDrawingState(clonedFrom.get());
        clonedLayersMap.emplace(clonedFrom, this);
    }

@@ -2684,6 +2683,13 @@ bool Layer::setDropInputMode(gui::DropInputMode mode) {
    return true;
}

void Layer::cloneDrawingState(const Layer* from) {
    mDrawingState = from->mDrawingState;
    // Skip callback info since they are not applicable for cloned layers.
    mDrawingState.releaseBufferListener = nullptr;
    mDrawingState.callbackHandles = {};
}

// ---------------------------------------------------------------------------

std::ostream& operator<<(std::ostream& stream, const Layer::FrameRate& rate) {
Loading