diff options
Diffstat (limited to 'libs/hwui/FrameInfo.h')
| -rw-r--r-- | libs/hwui/FrameInfo.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/libs/hwui/FrameInfo.h b/libs/hwui/FrameInfo.h index 6815254..23339ce 100644 --- a/libs/hwui/FrameInfo.h +++ b/libs/hwui/FrameInfo.h @@ -116,16 +116,28 @@ public: set(FrameInfoIndex::Flags) |= static_cast<uint64_t>(frameInfoFlag); } - int64_t operator[](FrameInfoIndex index) const { + inline int64_t operator[](FrameInfoIndex index) const { if (index == FrameInfoIndex::NumIndexes) return 0; return mFrameInfo[static_cast<int>(index)]; } - int64_t operator[](int index) const { + inline int64_t operator[](int index) const { if (index < 0 || index >= static_cast<int>(FrameInfoIndex::NumIndexes)) return 0; return mFrameInfo[index]; } + inline int64_t duration(FrameInfoIndex start, FrameInfoIndex end) const { + int64_t endtime = mFrameInfo[static_cast<int>(end)]; + int64_t starttime = mFrameInfo[static_cast<int>(start)]; + int64_t gap = endtime - starttime; + gap = starttime > 0 ? gap : 0; + return gap > 0 ? gap : 0; + } + + inline int64_t totalDuration() const { + return duration(FrameInfoIndex::IntendedVsync, FrameInfoIndex::FrameCompleted); + } + private: inline int64_t& set(FrameInfoIndex index) { return mFrameInfo[static_cast<int>(index)]; |
