diff options
Diffstat (limited to 'libs/hwui/renderthread/RenderThread.h')
-rw-r--r-- | libs/hwui/renderthread/RenderThread.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/libs/hwui/renderthread/RenderThread.h b/libs/hwui/renderthread/RenderThread.h index bb7c5181e112..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> @@ -81,11 +82,22 @@ struct 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; @@ -114,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(); } @@ -205,6 +218,7 @@ private: sp<VulkanManager> mVkManager; ASurfaceControlFunctions mASurfaceControlFunctions; + std::mutex mJankDataMutex; }; } /* namespace renderthread */ |