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 Diff line number Diff line
@@ -311,6 +311,8 @@ public:
     */
    void setSurfaceTextureListener(const sp<SurfaceTextureListener>&);

    void onFirstRef() override;

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

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

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

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

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

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

} // namespace android