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

Commit ae7791c5 authored by Chavi Weingarten's avatar Chavi Weingarten Committed by Automerger Merge Worker
Browse files

Merge "Convert certain format types to another buffer format." into sc-dev am: afbe7742

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/13487807

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I34849cf35fb24c7182f80a12b1a6246689628b73
parents 18e203ac afbe7742
Loading
Loading
Loading
Loading
+16 −2
Original line number Original line Diff line number Diff line
@@ -142,7 +142,7 @@ BLASTBufferQueue::BLASTBufferQueue(const std::string& name, const sp<SurfaceCont
    mBufferItemConsumer->setFrameAvailableListener(this);
    mBufferItemConsumer->setFrameAvailableListener(this);
    mBufferItemConsumer->setBufferFreedListener(this);
    mBufferItemConsumer->setBufferFreedListener(this);
    mBufferItemConsumer->setDefaultBufferSize(mSize.width, mSize.height);
    mBufferItemConsumer->setDefaultBufferSize(mSize.width, mSize.height);
    mBufferItemConsumer->setDefaultBufferFormat(format);
    mBufferItemConsumer->setDefaultBufferFormat(convertBufferFormat(format));


    mTransformHint = mSurfaceControl->getTransformHint();
    mTransformHint = mSurfaceControl->getTransformHint();
    mBufferItemConsumer->setTransformHint(mTransformHint);
    mBufferItemConsumer->setTransformHint(mTransformHint);
@@ -175,7 +175,7 @@ void BLASTBufferQueue::update(const sp<SurfaceControl>& surface, uint32_t width,
    std::unique_lock _lock{mMutex};
    std::unique_lock _lock{mMutex};
    if (mFormat != format) {
    if (mFormat != format) {
        mFormat = format;
        mFormat = format;
        mBufferItemConsumer->setDefaultBufferFormat(format);
        mBufferItemConsumer->setDefaultBufferFormat(convertBufferFormat(format));
    }
    }


    SurfaceComposerClient::Transaction t;
    SurfaceComposerClient::Transaction t;
@@ -683,4 +683,18 @@ void BLASTBufferQueue::createBufferQueue(sp<IGraphicBufferProducer>* outProducer
    *outConsumer = consumer;
    *outConsumer = consumer;
}
}


PixelFormat BLASTBufferQueue::convertBufferFormat(PixelFormat& format) {
    PixelFormat convertedFormat = format;
    switch (format) {
        case PIXEL_FORMAT_TRANSPARENT:
        case PIXEL_FORMAT_TRANSLUCENT:
            convertedFormat = PIXEL_FORMAT_RGBA_8888;
            break;
        case PIXEL_FORMAT_OPAQUE:
            convertedFormat = PIXEL_FORMAT_RGBX_8888;
            break;
    }
    return convertedFormat;
}

} // namespace android
} // namespace android
+1 −0
Original line number Original line Diff line number Diff line
@@ -110,6 +110,7 @@ private:
    // Return true if we need to reject the buffer based on the scaling mode and the buffer size.
    // Return true if we need to reject the buffer based on the scaling mode and the buffer size.
    bool rejectBuffer(const BufferItem& item) REQUIRES(mMutex);
    bool rejectBuffer(const BufferItem& item) REQUIRES(mMutex);
    bool maxBuffersAcquired(bool includeExtraAcquire) const REQUIRES(mMutex);
    bool maxBuffersAcquired(bool includeExtraAcquire) const REQUIRES(mMutex);
    static PixelFormat convertBufferFormat(PixelFormat& format);


    std::string mName;
    std::string mName;
    sp<SurfaceControl> mSurfaceControl;
    sp<SurfaceControl> mSurfaceControl;