diff options
Diffstat (limited to 'libs/gui')
| -rw-r--r-- | libs/gui/LayerDebugInfo.cpp | 8 | ||||
| -rw-r--r-- | libs/gui/LayerState.cpp | 4 | ||||
| -rw-r--r-- | libs/gui/include/gui/LayerDebugInfo.h | 2 |
3 files changed, 14 insertions, 0 deletions
diff --git a/libs/gui/LayerDebugInfo.cpp b/libs/gui/LayerDebugInfo.cpp index cdde9a2308..e707684618 100644 --- a/libs/gui/LayerDebugInfo.cpp +++ b/libs/gui/LayerDebugInfo.cpp @@ -61,6 +61,7 @@ status_t LayerDebugInfo::writeToParcel(Parcel* parcel) const { RETURN_ON_ERROR(parcel->writeBool(mRefreshPending)); RETURN_ON_ERROR(parcel->writeBool(mIsOpaque)); RETURN_ON_ERROR(parcel->writeBool(mContentDirty)); + RETURN_ON_ERROR(parcel->write(mStretchEffect)); return NO_ERROR; } @@ -105,6 +106,7 @@ status_t LayerDebugInfo::readFromParcel(const Parcel* parcel) { RETURN_ON_ERROR(parcel->readBool(&mRefreshPending)); RETURN_ON_ERROR(parcel->readBool(&mIsOpaque)); RETURN_ON_ERROR(parcel->readBool(&mContentDirty)); + RETURN_ON_ERROR(parcel->read(mStretchEffect)); return NO_ERROR; } @@ -115,6 +117,12 @@ std::string to_string(const LayerDebugInfo& info) { info.mTransparentRegion.dump(result, "TransparentRegion"); info.mVisibleRegion.dump(result, "VisibleRegion"); info.mSurfaceDamageRegion.dump(result, "SurfaceDamageRegion"); + if (info.mStretchEffect.hasEffect()) { + const auto& se = info.mStretchEffect; + StringAppendF(&result, " StretchEffect area=[%f, %f, %f, %f] vec=(%f, %f) maxAmount=%f\n", + se.area.left, se.area.top, se.area.right, se.area.bottom, se.vectorX, + se.vectorY, se.maxAmount); + } StringAppendF(&result, " layerStack=%4d, z=%9d, pos=(%g,%g), size=(%4d,%4d), ", info.mLayerStack, info.mZ, static_cast<double>(info.mX), diff --git a/libs/gui/LayerState.cpp b/libs/gui/LayerState.cpp index f053372cb0..288bf92c15 100644 --- a/libs/gui/LayerState.cpp +++ b/libs/gui/LayerState.cpp @@ -548,6 +548,10 @@ void layer_state_t::merge(const layer_state_t& other) { what |= eAutoRefreshChanged; autoRefresh = other.autoRefresh; } + if (other.what & eStretchChanged) { + what |= eStretchChanged; + stretchEffect = other.stretchEffect; + } if ((other.what & what) != other.what) { ALOGE("Unmerged SurfaceComposer Transaction properties. LayerState::merge needs updating? " "other.what=0x%" PRIu64 " what=0x%" PRIu64, diff --git a/libs/gui/include/gui/LayerDebugInfo.h b/libs/gui/include/gui/LayerDebugInfo.h index 66a7b4dc06..8b7d32c0a5 100644 --- a/libs/gui/include/gui/LayerDebugInfo.h +++ b/libs/gui/include/gui/LayerDebugInfo.h @@ -20,6 +20,7 @@ #include <ui/PixelFormat.h> #include <ui/Region.h> +#include <ui/StretchEffect.h> #include <string> #include <math/vec4.h> @@ -66,6 +67,7 @@ public: bool mRefreshPending = false; bool mIsOpaque = false; bool mContentDirty = false; + StretchEffect mStretchEffect = {}; }; std::string to_string(const LayerDebugInfo& info); |