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

Commit deea9850 authored by Anton Ivanov's avatar Anton Ivanov
Browse files

Initialize SurfaceTexture in onFirstRef().

Bug: 393217449
Test: presubmit
Flag: EXEMPT_refactor
Change-Id: I1fc0c7babf74bfc22ca878614688ef5a222bb0a0
parent 062b53ae
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -311,6 +311,8 @@ public:
     */
     */
    void setSurfaceTextureListener(const sp<SurfaceTextureListener>&);
    void setSurfaceTextureListener(const sp<SurfaceTextureListener>&);


    void onFirstRef() override;

protected:
protected:
    /**
    /**
     * abandonLocked overrides the ConsumerBase method to clear
     * abandonLocked overrides the ConsumerBase method to clear
+9 −12
Original line number Original line Diff line number Diff line
@@ -52,9 +52,7 @@ SurfaceTexture::SurfaceTexture(uint32_t tex, uint32_t texTarget, bool useFenceSy
        mUseFenceSync(useFenceSync),
        mUseFenceSync(useFenceSync),
        mTexTarget(texTarget),
        mTexTarget(texTarget),
        mCurrentTexture(BufferQueue::INVALID_BUFFER_SLOT),
        mCurrentTexture(BufferQueue::INVALID_BUFFER_SLOT),
        mOpMode(OpMode::attachedToGL) {
        mOpMode(OpMode::attachedToGL) {}
    initialize();
}


SurfaceTexture::SurfaceTexture(uint32_t texTarget, bool useFenceSync, bool isControlledByApp)
SurfaceTexture::SurfaceTexture(uint32_t texTarget, bool useFenceSync, bool isControlledByApp)
      : ConsumerBase(isControlledByApp),
      : ConsumerBase(isControlledByApp),
@@ -72,9 +70,7 @@ SurfaceTexture::SurfaceTexture(uint32_t texTarget, bool useFenceSync, bool isCon
        mUseFenceSync(useFenceSync),
        mUseFenceSync(useFenceSync),
        mTexTarget(texTarget),
        mTexTarget(texTarget),
        mCurrentTexture(BufferQueue::INVALID_BUFFER_SLOT),
        mCurrentTexture(BufferQueue::INVALID_BUFFER_SLOT),
        mOpMode(OpMode::detached) {
        mOpMode(OpMode::detached) {}
    initialize();
}


SurfaceTexture::SurfaceTexture(const sp<IGraphicBufferConsumer>& bq, uint32_t tex,
SurfaceTexture::SurfaceTexture(const sp<IGraphicBufferConsumer>& bq, uint32_t tex,
                               uint32_t texTarget, bool useFenceSync, bool isControlledByApp)
                               uint32_t texTarget, bool useFenceSync, bool isControlledByApp)
@@ -93,9 +89,7 @@ SurfaceTexture::SurfaceTexture(const sp<IGraphicBufferConsumer>& bq, uint32_t te
        mUseFenceSync(useFenceSync),
        mUseFenceSync(useFenceSync),
        mTexTarget(texTarget),
        mTexTarget(texTarget),
        mCurrentTexture(BufferQueue::INVALID_BUFFER_SLOT),
        mCurrentTexture(BufferQueue::INVALID_BUFFER_SLOT),
        mOpMode(OpMode::attachedToGL) {
        mOpMode(OpMode::attachedToGL) {}
    initialize();
}


SurfaceTexture::SurfaceTexture(const sp<IGraphicBufferConsumer>& bq, uint32_t texTarget,
SurfaceTexture::SurfaceTexture(const sp<IGraphicBufferConsumer>& bq, uint32_t texTarget,
                               bool useFenceSync, bool isControlledByApp)
                               bool useFenceSync, bool isControlledByApp)
@@ -114,9 +108,7 @@ SurfaceTexture::SurfaceTexture(const sp<IGraphicBufferConsumer>& bq, uint32_t te
        mUseFenceSync(useFenceSync),
        mUseFenceSync(useFenceSync),
        mTexTarget(texTarget),
        mTexTarget(texTarget),
        mCurrentTexture(BufferQueue::INVALID_BUFFER_SLOT),
        mCurrentTexture(BufferQueue::INVALID_BUFFER_SLOT),
        mOpMode(OpMode::detached) {
        mOpMode(OpMode::detached) {}
    initialize();
}


status_t SurfaceTexture::setDefaultBufferSize(uint32_t w, uint32_t h) {
status_t SurfaceTexture::setDefaultBufferSize(uint32_t w, uint32_t h) {
    Mutex::Autolock lock(mMutex);
    Mutex::Autolock lock(mMutex);
@@ -578,4 +570,9 @@ void SurfaceTexture::initialize() {
    mConsumer->setConsumerUsageBits(DEFAULT_USAGE_FLAGS);
    mConsumer->setConsumerUsageBits(DEFAULT_USAGE_FLAGS);
}
}


void SurfaceTexture::onFirstRef() {
    ConsumerBase::onFirstRef();
    initialize();
}

} // namespace android
} // namespace android