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

Commit 75ec33e0 authored by Riley Andrews's avatar Riley Andrews Committed by Android Git Automerger
Browse files

am d15ef27f: Update ScreenshotClient to take advantage of rotation in...

am d15ef27f: Update ScreenshotClient to take advantage of rotation in surfaceflinger\'s screencap api

* commit 'd15ef27f':
  Update ScreenshotClient to take advantage of rotation in surfaceflinger's screencap api
parents 129dc842 d15ef27f
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -209,6 +209,10 @@ public:
            Rect sourceCrop, uint32_t reqWidth, uint32_t reqHeight,
            Rect sourceCrop, uint32_t reqWidth, uint32_t reqHeight,
            uint32_t minLayerZ, uint32_t maxLayerZ,
            uint32_t minLayerZ, uint32_t maxLayerZ,
            bool useIdentityTransform);
            bool useIdentityTransform);
    status_t update(const sp<IBinder>& display,
            Rect sourceCrop, uint32_t reqWidth, uint32_t reqHeight,
            uint32_t minLayerZ, uint32_t maxLayerZ,
            bool useIdentityTransform, uint32_t rotation);


    sp<CpuConsumer> getCpuConsumer() const;
    sp<CpuConsumer> getCpuConsumer() const;


+14 −4
Original line number Original line Diff line number Diff line
@@ -717,7 +717,7 @@ sp<CpuConsumer> ScreenshotClient::getCpuConsumer() const {
status_t ScreenshotClient::update(const sp<IBinder>& display,
status_t ScreenshotClient::update(const sp<IBinder>& display,
        Rect sourceCrop, uint32_t reqWidth, uint32_t reqHeight,
        Rect sourceCrop, uint32_t reqWidth, uint32_t reqHeight,
        uint32_t minLayerZ, uint32_t maxLayerZ,
        uint32_t minLayerZ, uint32_t maxLayerZ,
        bool useIdentityTransform) {
        bool useIdentityTransform, uint32_t rotation) {
    sp<ISurfaceComposer> s(ComposerService::getComposerService());
    sp<ISurfaceComposer> s(ComposerService::getComposerService());
    if (s == NULL) return NO_INIT;
    if (s == NULL) return NO_INIT;
    sp<CpuConsumer> cpuConsumer = getCpuConsumer();
    sp<CpuConsumer> cpuConsumer = getCpuConsumer();
@@ -729,7 +729,8 @@ status_t ScreenshotClient::update(const sp<IBinder>& display,
    }
    }


    status_t err = s->captureScreen(display, mProducer, sourceCrop,
    status_t err = s->captureScreen(display, mProducer, sourceCrop,
            reqWidth, reqHeight, minLayerZ, maxLayerZ, useIdentityTransform);
            reqWidth, reqHeight, minLayerZ, maxLayerZ, useIdentityTransform,
            static_cast<ISurfaceComposer::Rotation>(rotation));


    if (err == NO_ERROR) {
    if (err == NO_ERROR) {
        err = mCpuConsumer->lockNextBuffer(&mBuffer);
        err = mCpuConsumer->lockNextBuffer(&mBuffer);
@@ -740,16 +741,25 @@ status_t ScreenshotClient::update(const sp<IBinder>& display,
    return err;
    return err;
}
}


status_t ScreenshotClient::update(const sp<IBinder>& display,
        Rect sourceCrop, uint32_t reqWidth, uint32_t reqHeight,
        uint32_t minLayerZ, uint32_t maxLayerZ,
        bool useIdentityTransform) {

    return ScreenshotClient::update(display, sourceCrop, reqWidth, reqHeight,
            minLayerZ, maxLayerZ, useIdentityTransform, ISurfaceComposer::eRotateNone);
}

status_t ScreenshotClient::update(const sp<IBinder>& display, Rect sourceCrop,
status_t ScreenshotClient::update(const sp<IBinder>& display, Rect sourceCrop,
        bool useIdentityTransform) {
        bool useIdentityTransform) {
    return ScreenshotClient::update(display, sourceCrop, 0, 0, 0, -1UL,
    return ScreenshotClient::update(display, sourceCrop, 0, 0, 0, -1UL,
            useIdentityTransform);
            useIdentityTransform, ISurfaceComposer::eRotateNone);
}
}


status_t ScreenshotClient::update(const sp<IBinder>& display, Rect sourceCrop,
status_t ScreenshotClient::update(const sp<IBinder>& display, Rect sourceCrop,
        uint32_t reqWidth, uint32_t reqHeight, bool useIdentityTransform) {
        uint32_t reqWidth, uint32_t reqHeight, bool useIdentityTransform) {
    return ScreenshotClient::update(display, sourceCrop, reqWidth, reqHeight,
    return ScreenshotClient::update(display, sourceCrop, reqWidth, reqHeight,
            0, -1UL, useIdentityTransform);
            0, -1UL, useIdentityTransform, ISurfaceComposer::eRotateNone);
}
}


void ScreenshotClient::release() {
void ScreenshotClient::release() {