author | Stark Li <stark.li@amlogic.com> | 2016-10-10 06:27:35 (GMT) |
---|---|---|
committer | Stark Li <stark.li@amlogic.com> | 2016-10-10 06:27:35 (GMT) |
commit | f6e1358e553cb11ad88ce21d9e147820a7a7b1e2 (patch) | |
tree | 4fbb81680eff565f560a5d2330d32dd729acadff | |
parent | c2d8ba873be740d5a263181d97d94c824c5e8d0a (diff) | |
download | hwcomposer-f6e1358e553cb11ad88ce21d9e147820a7a7b1e2.zip hwcomposer-f6e1358e553cb11ad88ce21d9e147820a7a7b1e2.tar.gz hwcomposer-f6e1358e553cb11ad88ce21d9e147820a7a7b1e2.tar.bz2 |
PD#132646: set video axis when displayframe size is change
Change-Id: I96a6482d8aa234666118bc196bca783722b5af14
-rw-r--r-- | hwc2/common/base/HwcLayer.cpp | 14 | ||||
-rw-r--r-- | hwc2/common/base/HwcLayer.h | 2 |
2 files changed, 14 insertions, 2 deletions
diff --git a/hwc2/common/base/HwcLayer.cpp b/hwc2/common/base/HwcLayer.cpp index 85b9f5d..248cddf 100644 --- a/hwc2/common/base/HwcLayer.cpp +++ b/hwc2/common/base/HwcLayer.cpp @@ -188,8 +188,13 @@ void HwcLayer::presentOverlay() { axis_changed = Utils::checkSysfsStatus(SYSFS_VIDEO_AXIS, mLastAxis, 32); window_axis_changed = Utils::checkSysfsStatus(SYSFS_WINDOW_AXIS, mLastWindowaxis, 50); - if (!vpp_changed && !mode_changed && !axis_changed && !free_scale_changed - && !window_axis_changed) { + if (mLastTransform == mTransform + && mLastDisplayFrame.left == mDisplayFrame.left + && mLastDisplayFrame.top == mDisplayFrame.top + && mLastDisplayFrame.right == mDisplayFrame.right + && mLastDisplayFrame.bottom== mDisplayFrame.bottom + && !vpp_changed && !mode_changed && !axis_changed + && !free_scale_changed && !window_axis_changed) { return; } @@ -220,6 +225,11 @@ void HwcLayer::presentOverlay() { */ /*set screen_mode in amvideo_utils_set_virtual_position(),pls check in libplayer*/ //amvideo_utils_set_screen_mode(0); + mLastTransform = mTransform; + mLastDisplayFrame.left = mDisplayFrame.left; + mLastDisplayFrame.top = mDisplayFrame.top; + mLastDisplayFrame.right = mDisplayFrame.right; + mLastDisplayFrame.bottom = mDisplayFrame.bottom; memset(mLastAxis, 0, sizeof(mLastAxis)); if (amsysfs_get_sysfs_str(SYSFS_VIDEO_AXIS, mLastAxis, sizeof(mLastAxis)) == 0) { diff --git a/hwc2/common/base/HwcLayer.h b/hwc2/common/base/HwcLayer.h index b4ff6dd..50c6d35 100644 --- a/hwc2/common/base/HwcLayer.h +++ b/hwc2/common/base/HwcLayer.h @@ -61,9 +61,11 @@ class HwcLayer { int32_t mDataSpace; float mPlaneAlpha; int32_t mTransform; + int32_t mLastTransform; uint32_t mZ; hwc_frect_t mSourceCrop; hwc_rect_t mDisplayFrame; + hwc_rect_t mLastDisplayFrame; hwc_region_t mDamageRegion; hwc_region_t mVisibleRegion; |