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

Commit 1cc70404 authored by Vishnu Nair's avatar Vishnu Nair
Browse files

ViewRootImpl: Replace usage of orientation with buffer transform for transform hint

Fixes: 202797234
Test: atest VulkanPreTransformTest#testVulkanPreTransformNotSetToMatchCurrentTransform
Change-Id: Iddb2e0b045096b4b86c0bc3f8222b61de67994bc
parent 304d6780
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -241,7 +241,8 @@ public final class SurfaceControl implements Parcelable {
    private static native void nativeRemoveJankDataListener(long nativeListener);
    private static native long nativeCreateJankDataListenerWrapper(OnJankDataListener listener);
    private static native int nativeGetGPUContextPriority();
    private static native void nativeSetTransformHint(long nativeObject, int transformHint);
    private static native void nativeSetTransformHint(long nativeObject,
            @SurfaceControl.BufferTransform int transformHint);
    private static native int nativeGetTransformHint(long nativeObject);
    private static native int nativeGetLayerId(long nativeObject);

@@ -3729,7 +3730,7 @@ public final class SurfaceControl implements Parcelable {
    /**
     * @hide
     */
    public int getTransformHint() {
    public @SurfaceControl.BufferTransform int getTransformHint() {
        checkNotReleased();
        return nativeGetTransformHint(mNativeObject);
    }
@@ -3743,7 +3744,7 @@ public final class SurfaceControl implements Parcelable {
     * with the same size.
     * @hide
     */
    public void setTransformHint(@Surface.Rotation int transformHint) {
    public void setTransformHint(@SurfaceControl.BufferTransform int transformHint) {
        nativeSetTransformHint(mNativeObject, transformHint);
    }

+1 −1
Original line number Diff line number Diff line
@@ -214,7 +214,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
    @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
    final Rect mSurfaceFrame = new Rect();
    int mLastSurfaceWidth = -1, mLastSurfaceHeight = -1;
    int mTransformHint = 0;
    @SurfaceControl.BufferTransform int mTransformHint = 0;

    private boolean mGlobalListenersAdded;
    private boolean mAttachedToWindow;
+4 −4
Original line number Diff line number Diff line
@@ -314,7 +314,8 @@ public final class ViewRootImpl implements ViewParent,

    private ArrayList<OnBufferTransformHintChangedListener> mTransformHintListeners =
            new ArrayList<>();
    private @Surface.Rotation int mPreviousTransformHint = Surface.ROTATION_0;
    private @SurfaceControl.BufferTransform
            int mPreviousTransformHint = SurfaceControl.BUFFER_TRANSFORM_IDENTITY;
    /**
     * Callback for notifying about global configuration changes.
     */
@@ -7872,8 +7873,7 @@ public final class ViewRootImpl implements ViewParent,
            int transformHint = mSurfaceControl.getTransformHint();
            if (mPreviousTransformHint != transformHint) {
                mPreviousTransformHint = transformHint;
                dispatchTransformHintChanged(
                        SurfaceControl.rotationToBufferTransform(transformHint));
                dispatchTransformHintChanged(transformHint);
            }
        } else {
            destroySurface();
@@ -10501,7 +10501,7 @@ public final class ViewRootImpl implements ViewParent,

    @Override
    public @SurfaceControl.BufferTransform int getBufferTransformHint() {
        return SurfaceControl.rotationToBufferTransform(mSurfaceControl.getTransformHint());
        return mSurfaceControl.getTransformHint();
    }

    @Override
+2 −6
Original line number Diff line number Diff line
@@ -1815,16 +1815,12 @@ static void nativeSetTransformHint(JNIEnv* env, jclass clazz, jlong nativeSurfac
    if (surface == nullptr) {
        return;
    }
    surface->setTransformHint(
            ui::Transform::toRotationFlags(static_cast<ui::Rotation>(transformHint)));
    surface->setTransformHint(transformHint);
}

static jint nativeGetTransformHint(JNIEnv* env, jclass clazz, jlong nativeSurfaceControl) {
    sp<SurfaceControl> surface(reinterpret_cast<SurfaceControl*>(nativeSurfaceControl));
    ui::Transform::RotationFlags transformHintRotationFlags =
            static_cast<ui::Transform::RotationFlags>(surface->getTransformHint());

    return toRotationInt(ui::Transform::toRotation((transformHintRotationFlags)));
    return surface->getTransformHint();
}

static jint nativeGetLayerId(JNIEnv* env, jclass clazz, jlong nativeSurfaceControl) {
+2 −1
Original line number Diff line number Diff line
@@ -2472,7 +2472,8 @@ public class WindowManagerService extends IWindowManager.Stub
            if (isPrimaryDisplay) {
                transformHint = (transformHint + mPrimaryDisplayOrientation) % 4;
            }
            outSurfaceControl.setTransformHint(transformHint);
            outSurfaceControl.setTransformHint(
                    SurfaceControl.rotationToBufferTransform(transformHint));
            ProtoLog.v(WM_DEBUG_ORIENTATION,
                    "Passing transform hint %d for window %s%s",
                    transformHint, win,