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

Commit 8a1ce786 authored by Ram Indani's avatar Ram Indani Committed by Android (Google) Code Review
Browse files

Merge "API change to include int for transformation and current crop...

Merge "API change to include int for transformation and current crop rectangle. Not used these values for now."
parents a17d55ae 184a2d34
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -272,10 +272,11 @@ public:
    status_t attachToContext(uint32_t tex);

    sp<GraphicBuffer> dequeueBuffer(int* outSlotid, android_dataspace* outDataspace,
                                    float* outTransformMatrix, bool* outQueueEmpty,
                                    float* outTransformMatrix, uint32_t* outTransform,
                                    bool* outQueueEmpty,
                                    SurfaceTexture_createReleaseFence createFence,
                                    SurfaceTexture_fenceWait fenceWait,
                                    void* fencePassThroughHandle);
                                    void* fencePassThroughHandle, ARect* currentCrop);

    /**
     * takeConsumerOwnership attaches a SurfaceTexture that is currently in the
+3 −2
Original line number Diff line number Diff line
@@ -84,10 +84,11 @@ typedef int (*ASurfaceTexture_fenceWait)(int fence, void* fencePassThroughHandle
 */
AHardwareBuffer* ASurfaceTexture_dequeueBuffer(ASurfaceTexture* st, int* outSlotid,
                                               android_dataspace* outDataspace,
                                               float* outTransformMatrix, bool* outNewContent,
                                               float* outTransformMatrix, uint32_t* outTransform,
                                               bool* outNewContent,
                                               ASurfaceTexture_createReleaseFence createFence,
                                               ASurfaceTexture_fenceWait fenceWait,
                                               void* fencePassThroughHandle);
                                               void* fencePassThroughHandle, ARect* currentCrop);

} // namespace android

+5 −2
Original line number Diff line number Diff line
@@ -464,10 +464,11 @@ void SurfaceTexture::dumpLocked(String8& result, const char* prefix) const {
}

sp<GraphicBuffer> SurfaceTexture::dequeueBuffer(int* outSlotid, android_dataspace* outDataspace,
                                                float* outTransformMatrix, bool* outQueueEmpty,
                                                float* outTransformMatrix, uint32_t* outTransform,
                                                bool* outQueueEmpty,
                                                SurfaceTexture_createReleaseFence createFence,
                                                SurfaceTexture_fenceWait fenceWait,
                                                void* fencePassThroughHandle) {
                                                void* fencePassThroughHandle, ARect* currentCrop) {
    Mutex::Autolock _l(mMutex);
    sp<GraphicBuffer> buffer;

@@ -484,6 +485,8 @@ sp<GraphicBuffer> SurfaceTexture::dequeueBuffer(int* outSlotid, android_dataspac
    buffer = mImageConsumer.dequeueBuffer(outSlotid, outDataspace, outQueueEmpty, *this,
                                          createFence, fenceWait, fencePassThroughHandle);
    memcpy(outTransformMatrix, mCurrentTransformMatrix, sizeof(mCurrentTransformMatrix));
    *outTransform = mCurrentTransform;
    *currentCrop = mCurrentCrop;
    return buffer;
}

+6 −3
Original line number Diff line number Diff line
@@ -194,15 +194,18 @@ void ASurfaceTexture_releaseConsumerOwnership(ASurfaceTexture* texture) {

AHardwareBuffer* ASurfaceTexture_dequeueBuffer(ASurfaceTexture* st, int* outSlotid,
                                               android_dataspace* outDataspace,
                                               float* outTransformMatrix, bool* outNewContent,
                                               float* outTransformMatrix, uint32_t* outTransform,
                                               bool* outNewContent,
                                               ASurfaceTexture_createReleaseFence createFence,
                                               ASurfaceTexture_fenceWait fenceWait, void* handle) {
                                               ASurfaceTexture_fenceWait fenceWait, void* handle,
                                               ARect* currentCrop) {
    sp<GraphicBuffer> buffer;
    *outNewContent = false;
    bool queueEmpty;
    do {
        buffer = st->consumer->dequeueBuffer(outSlotid, outDataspace, outTransformMatrix,
                                             &queueEmpty, createFence, fenceWait, handle);
                                             outTransform, &queueEmpty, createFence, fenceWait,
                                             handle, currentCrop);
        if (!queueEmpty) {
            *outNewContent = true;
        }