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

Commit 184a2d34 authored by ramindani's avatar ramindani Committed by Ram Indani
Browse files

API change to include int for transformation and current crop rectangle.

Not used these values for now.

BUG=152621633
Test: Verified manually and with
atest TextureViewCameraTest
atest TextureViewTest
atest TextureViewSnapshotTest
atest TextureViewStressTest
atest PixelCopyTest
atest BitmapTest
atest HardwareBitmapTests


Change-Id: If2fee82fadf947193e1c058600fecb2cde04ef5b
parent 45d7974f
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;
        }