diff options
author | Scott Lobdell <slobdell@google.com> | 2021-02-23 11:55:26 -0800 |
---|---|---|
committer | Daniel Norman <danielnorman@google.com> | 2021-03-01 15:24:51 -0800 |
commit | 24818fca475a6726f5ef0cae42149615079af6e9 (patch) | |
tree | 1a3163ac7ce01c335d8d1c05cacddf47c0a30bfd /libs/hwui/renderthread/RenderThread.h | |
parent | 8deb6bda58c7ecd95285f4dc934269e0c98c989a (diff) | |
parent | 0f50c486e59546c32acf3f2cdf6667897600de5c (diff) |
Merge SP1A.210222.001
Change-Id: If3509f3a660e820f4c8c0b29e007faa868e1f089
Diffstat (limited to 'libs/hwui/renderthread/RenderThread.h')
-rw-r--r-- | libs/hwui/renderthread/RenderThread.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/libs/hwui/renderthread/RenderThread.h b/libs/hwui/renderthread/RenderThread.h index 4fbb07168ac0..a7d1ba8dafd7 100644 --- a/libs/hwui/renderthread/RenderThread.h +++ b/libs/hwui/renderthread/RenderThread.h @@ -17,6 +17,7 @@ #ifndef RENDERTHREAD_H_ #define RENDERTHREAD_H_ +#include <surface_control_private.h> #include <GrDirectContext.h> #include <SkBitmap.h> #include <cutils/compiler.h> @@ -78,6 +79,27 @@ struct VsyncSource { virtual ~VsyncSource() {} }; +typedef void (*ASC_acquire)(ASurfaceControl* control); +typedef void (*ASC_release)(ASurfaceControl* control); + +typedef void (*ASC_registerSurfaceStatsListener)(ASurfaceControl* control, void* context, + ASurfaceControl_SurfaceStatsListener func); +typedef void (*ASC_unregisterSurfaceStatsListener)(void* context, + ASurfaceControl_SurfaceStatsListener func); + +typedef int64_t (*ASCStats_getAcquireTime)(ASurfaceControlStats* stats); +typedef uint64_t (*ASCStats_getFrameNumber)(ASurfaceControlStats* stats); + +struct ASurfaceControlFunctions { + ASurfaceControlFunctions(); + ASC_acquire acquireFunc; + ASC_release releaseFunc; + ASC_registerSurfaceStatsListener registerListenerFunc; + ASC_unregisterSurfaceStatsListener unregisterListenerFunc; + ASCStats_getAcquireTime getAcquireTimeFunc; + ASCStats_getFrameNumber getFrameNumberFunc; +}; + class ChoreographerSource; class DummyVsyncSource; @@ -104,6 +126,7 @@ public: RenderState& renderState() const { return *mRenderState; } EglManager& eglManager() const { return *mEglManager; } ProfileDataContainer& globalProfileData() { return mGlobalProfileData; } + std::mutex& getJankDataMutex() { return mJankDataMutex; } Readback& readback(); GrDirectContext* getGrContext() const { return mGrContext.get(); } @@ -121,6 +144,10 @@ public: void preload(); + const ASurfaceControlFunctions& getASurfaceControlFunctions() { + return mASurfaceControlFunctions; + } + /** * isCurrent provides a way to query, if the caller is running on * the render thread. @@ -189,6 +216,9 @@ private: sk_sp<GrDirectContext> mGrContext; CacheManager* mCacheManager; sp<VulkanManager> mVkManager; + + ASurfaceControlFunctions mASurfaceControlFunctions; + std::mutex mJankDataMutex; }; } /* namespace renderthread */ |