summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Quinn <pquinn@google.com>2020-02-26 18:48:28 -0800
committerPhilip Quinn <pquinn@google.com>2020-03-02 16:02:43 -0800
commita1642feefb6f694b8d48ff66c6b75cbf84fd3a87 (patch)
tree132a4a910bb175943083568b9d26fc0c14072568
parenteab94c8f45c5c231cf62467ee0f0be7a99fcc484 (diff)
downloadandroid_frameworks_native-a1642feefb6f694b8d48ff66c6b75cbf84fd3a87.tar.gz
android_frameworks_native-a1642feefb6f694b8d48ff66c6b75cbf84fd3a87.tar.bz2
android_frameworks_native-a1642feefb6f694b8d48ff66c6b75cbf84fd3a87.zip
Swap video frame rotation direction.
The DISPLAY_ORIENTATION_* values indicate the physical rotation of the display, and not the rotation of the graphics surface (see android.view.Display#getRotation()). To compensate for a physical rotation in one direction, the video frame needs to be rotated in the opposite direction. Fixes: 150382187 Test: atest libinput_tests inputflinger_tests Change-Id: Iddd943c35084f7032a8e60273e5e63b59ad10d1c Merged-In: Iddd943c35084f7032a8e60273e5e63b59ad10d1c
-rw-r--r--libs/input/TouchVideoFrame.cpp4
-rw-r--r--libs/input/tests/TouchVideoFrame_test.cpp8
2 files changed, 6 insertions, 6 deletions
diff --git a/libs/input/TouchVideoFrame.cpp b/libs/input/TouchVideoFrame.cpp
index 8a4298a36..ce76e3fa6 100644
--- a/libs/input/TouchVideoFrame.cpp
+++ b/libs/input/TouchVideoFrame.cpp
@@ -42,13 +42,13 @@ const struct timeval& TouchVideoFrame::getTimestamp() const { return mTimestamp;
void TouchVideoFrame::rotate(int32_t orientation) {
switch (orientation) {
case DISPLAY_ORIENTATION_90:
- rotateQuarterTurn(true /*clockwise*/);
+ rotateQuarterTurn(false /*clockwise*/);
break;
case DISPLAY_ORIENTATION_180:
rotate180();
break;
case DISPLAY_ORIENTATION_270:
- rotateQuarterTurn(false /*clockwise*/);
+ rotateQuarterTurn(true /*clockwise*/);
break;
}
}
diff --git a/libs/input/tests/TouchVideoFrame_test.cpp b/libs/input/tests/TouchVideoFrame_test.cpp
index 815424ee3..fe06cad72 100644
--- a/libs/input/tests/TouchVideoFrame_test.cpp
+++ b/libs/input/tests/TouchVideoFrame_test.cpp
@@ -85,14 +85,14 @@ TEST(TouchVideoFrame, Rotate90_1x1) {
TEST(TouchVideoFrame, Rotate90_2x2) {
TouchVideoFrame frame(2, 2, {1, 2, 3, 4}, TIMESTAMP);
- TouchVideoFrame frameRotated(2, 2, {3, 1, 4, 2}, TIMESTAMP);
+ TouchVideoFrame frameRotated(2, 2, {2, 4, 1, 3}, TIMESTAMP);
frame.rotate(DISPLAY_ORIENTATION_90);
ASSERT_EQ(frame, frameRotated);
}
TEST(TouchVideoFrame, Rotate90_3x2) {
TouchVideoFrame frame(3, 2, {1, 2, 3, 4, 5, 6}, TIMESTAMP);
- TouchVideoFrame frameRotated(2, 3, {5, 3, 1, 6, 4, 2}, TIMESTAMP);
+ TouchVideoFrame frameRotated(2, 3, {2, 4, 6, 1, 3, 5}, TIMESTAMP);
frame.rotate(DISPLAY_ORIENTATION_90);
ASSERT_EQ(frame, frameRotated);
}
@@ -170,14 +170,14 @@ TEST(TouchVideoFrame, Rotate270_1x1) {
TEST(TouchVideoFrame, Rotate270_2x2) {
TouchVideoFrame frame(2, 2, {1, 2, 3, 4}, TIMESTAMP);
- TouchVideoFrame frameRotated(2, 2, {2, 4, 1, 3}, TIMESTAMP);
+ TouchVideoFrame frameRotated(2, 2, {3, 1, 4, 2}, TIMESTAMP);
frame.rotate(DISPLAY_ORIENTATION_270);
ASSERT_EQ(frame, frameRotated);
}
TEST(TouchVideoFrame, Rotate270_3x2) {
TouchVideoFrame frame(3, 2, {1, 2, 3, 4, 5, 6}, TIMESTAMP);
- TouchVideoFrame frameRotated(2, 3, {2, 4, 6, 1, 3, 5}, TIMESTAMP);
+ TouchVideoFrame frameRotated(2, 3, {5, 3, 1, 6, 4, 2}, TIMESTAMP);
frame.rotate(DISPLAY_ORIENTATION_270);
ASSERT_EQ(frame, frameRotated);
}