ViewRootImpl: Replace usage of orientation with buffer transform for transform hint
Fixes: 202797234 Test: atest VulkanPreTransformTest#testVulkanPreTransformNotSetToMatchCurrentTransform Change-Id: Iddb2e0b045096b4b86c0bc3f8222b61de67994bc
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user