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

Commit e4f3be74 authored by Melody Hsu's avatar Melody Hsu Committed by Android (Google) Code Review
Browse files

Merge "Remove useIdentityTransform from DisplayCaptureArgs." into main

parents 791b234c 70a63e5f
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -930,7 +930,6 @@ status_t DisplayCaptureArgs::writeToParcel(Parcel* output) const {
    SAFE_PARCEL(output->writeStrongBinder, displayToken);
    SAFE_PARCEL(output->writeUint32, width);
    SAFE_PARCEL(output->writeUint32, height);
    SAFE_PARCEL(output->writeBool, useIdentityTransform);
    return NO_ERROR;
}

@@ -940,7 +939,6 @@ status_t DisplayCaptureArgs::readFromParcel(const Parcel* input) {
    SAFE_PARCEL(input->readStrongBinder, &displayToken);
    SAFE_PARCEL(input->readUint32, &width);
    SAFE_PARCEL(input->readUint32, &height);
    SAFE_PARCEL(input->readBool, &useIdentityTransform);
    return NO_ERROR;
}

+0 −1
Original line number Diff line number Diff line
@@ -76,7 +76,6 @@ struct DisplayCaptureArgs : CaptureArgs {
    sp<IBinder> displayToken;
    uint32_t width{0};
    uint32_t height{0};
    bool useIdentityTransform{false};

    status_t writeToParcel(Parcel* output) const override;
    status_t readFromParcel(const Parcel* input) override;
+4 −29
Original line number Diff line number Diff line
@@ -18,41 +18,26 @@
#include "DisplayDevice.h"

namespace android {
namespace {

RenderArea::RotationFlags applyDeviceOrientation(bool useIdentityTransform,
                                                 const DisplayDevice& display) {
    if (!useIdentityTransform) {
        return RenderArea::RotationFlags::ROT_0;
    }

    return ui::Transform::toRotationFlags(display.getOrientation());
}

} // namespace

std::unique_ptr<RenderArea> DisplayRenderArea::create(wp<const DisplayDevice> displayWeak,
                                                      const Rect& sourceCrop, ui::Size reqSize,
                                                      ui::Dataspace reqDataSpace,
                                                      bool useIdentityTransform,
                                                      bool hintForSeamlessTransition,
                                                      bool allowSecureLayers) {
    if (auto display = displayWeak.promote()) {
        // Using new to access a private constructor.
        return std::unique_ptr<DisplayRenderArea>(
                new DisplayRenderArea(std::move(display), sourceCrop, reqSize, reqDataSpace,
                                      useIdentityTransform, hintForSeamlessTransition,
                                      allowSecureLayers));
                                      hintForSeamlessTransition, allowSecureLayers));
    }
    return nullptr;
}

DisplayRenderArea::DisplayRenderArea(sp<const DisplayDevice> display, const Rect& sourceCrop,
                                     ui::Size reqSize, ui::Dataspace reqDataSpace,
                                     bool useIdentityTransform, bool hintForSeamlessTransition,
                                     bool allowSecureLayers)
                                     bool hintForSeamlessTransition, bool allowSecureLayers)
      : RenderArea(reqSize, CaptureFill::OPAQUE, reqDataSpace, hintForSeamlessTransition,
                   allowSecureLayers, applyDeviceOrientation(useIdentityTransform, *display)),
                   allowSecureLayers),
        mDisplay(std::move(display)),
        mSourceCrop(sourceCrop) {}

@@ -73,17 +58,7 @@ Rect DisplayRenderArea::getSourceCrop() const {
    if (mSourceCrop.isEmpty()) {
        return mDisplay->getLayerStackSpaceRect();
    }

    // Correct for the orientation when the screen capture request contained
    // useIdentityTransform. This will cause the rotation flag to be non 0 since
    // it needs to rotate based on the screen orientation to allow the screenshot
    // to be taken in the ROT_0 orientation
    const auto flags = getRotationFlags();
    int width = mDisplay->getLayerStackSpaceRect().getWidth();
    int height = mDisplay->getLayerStackSpaceRect().getHeight();
    ui::Transform rotation;
    rotation.set(flags, width, height);
    return rotation.transform(mSourceCrop);
    return mSourceCrop;
}

} // namespace android
+1 −3
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ class DisplayRenderArea : public RenderArea {
public:
    static std::unique_ptr<RenderArea> create(wp<const DisplayDevice>, const Rect& sourceCrop,
                                              ui::Size reqSize, ui::Dataspace,
                                              bool useIdentityTransform,
                                              bool hintForSeamlessTransition,
                                              bool allowSecureLayers = true);

@@ -40,8 +39,7 @@ public:

private:
    DisplayRenderArea(sp<const DisplayDevice>, const Rect& sourceCrop, ui::Size reqSize,
                      ui::Dataspace, bool useIdentityTransform, bool hintForSeamlessTransition,
                      bool allowSecureLayers = true);
                      ui::Dataspace, bool hintForSeamlessTransition, bool allowSecureLayers = true);

    const sp<const DisplayDevice> mDisplay;
    const Rect mSourceCrop;
+1 −3
Original line number Diff line number Diff line
@@ -276,13 +276,11 @@ void RegionSamplingThread::captureSample() {
    }

    const Rect sampledBounds = sampleRegion.bounds();
    constexpr bool kUseIdentityTransform = false;
    constexpr bool kHintForSeamlessTransition = false;

    SurfaceFlinger::RenderAreaFuture renderAreaFuture = ftl::defer([=] {
        return DisplayRenderArea::create(displayWeak, sampledBounds, sampledBounds.getSize(),
                                         ui::Dataspace::V0_SRGB, kUseIdentityTransform,
                                         kHintForSeamlessTransition);
                                         ui::Dataspace::V0_SRGB, kHintForSeamlessTransition);
    });

    std::unordered_set<sp<IRegionSamplingListener>, SpHash<IRegionSamplingListener>> listeners;
Loading