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

Commit c2e77887 authored by Robert Carr's avatar Robert Carr
Browse files

Expose setScalingMode from Surface.

While we are here fix a validation error causing
NATIVE_WINDOW_SCALING_MODE_NO_SCALE_CROP to never be applied.
Furthermore, we remove GLConsumer logic causing the scaling mode to
be reinitialized when buffers change.

Bug: 26010823
Change-Id: I1bf1e4fdc2eded67ff401783cf24f920e4684326
parent 3c09d200
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -112,6 +112,11 @@ public:
    // See IGraphicBufferProducer::getNextFrameNumber
    uint64_t getNextFrameNumber() const;

    /* Set the scaling mode to be used with a Surface.
     * See NATIVE_WINDOW_SET_SCALING_MODE and its parameters
     * in <system/window.h>. */
    int setScalingMode(int mode);

protected:
    virtual ~Surface();

@@ -177,7 +182,6 @@ protected:
    virtual int setBuffersDimensions(uint32_t width, uint32_t height);
    virtual int setBuffersUserDimensions(uint32_t width, uint32_t height);
    virtual int setBuffersFormat(PixelFormat format);
    virtual int setScalingMode(int mode);
    virtual int setBuffersTransform(uint32_t transform);
    virtual int setBuffersStickyTransform(uint32_t transform);
    virtual int setBuffersTimestamp(int64_t timestamp);
+0 −1
Original line number Diff line number Diff line
@@ -294,7 +294,6 @@ status_t GLConsumer::releaseTexImage() {
        mCurrentTextureImage = mReleasedTexImage;
        mCurrentCrop.makeInvalid();
        mCurrentTransform = 0;
        mCurrentScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE;
        mCurrentTimestamp = 0;
        mCurrentFence = Fence::NO_FENCE;

+1 −0
Original line number Diff line number Diff line
@@ -929,6 +929,7 @@ int Surface::setScalingMode(int mode)
        case NATIVE_WINDOW_SCALING_MODE_FREEZE:
        case NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW:
        case NATIVE_WINDOW_SCALING_MODE_SCALE_CROP:
        case NATIVE_WINDOW_SCALING_MODE_NO_SCALE_CROP:
            break;
        default:
            ALOGE("unknown scaling mode: %d", mode);