diff options
| author | Huihong Luo <huisinro@google.com> | 2021-06-25 13:59:39 -0700 |
|---|---|---|
| committer | Huihong Luo <huisinro@google.com> | 2021-06-28 20:36:40 -0700 |
| commit | 540fdf89b1432f99e3c01d6ec838d434609eefb7 (patch) | |
| tree | 7d2a02978e9bb3dfbcdef4b95968a932b7f0c2ec /libs/hwui/renderthread/CanvasContext.h | |
| parent | fb0faec367832e8fdc05508d831a697972dfa4f2 (diff) | |
Reparent surface control for Webview overlay
When the root surface control changes, the parent of the Webview surface control must be changed.
Bug: 191900007
Test: switch app, or turn on/off screen
Change-Id: Ib7b34133776fd5944afc638bfee471afe6a17349
Diffstat (limited to 'libs/hwui/renderthread/CanvasContext.h')
| -rw-r--r-- | libs/hwui/renderthread/CanvasContext.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h index 3279ccb8e597..85af3e4fb0b6 100644 --- a/libs/hwui/renderthread/CanvasContext.h +++ b/libs/hwui/renderthread/CanvasContext.h @@ -110,6 +110,7 @@ public: GrDirectContext* getGrContext() const { return mRenderThread.getGrContext(); } ASurfaceControl* getSurfaceControl() const { return mSurfaceControl; } + int32_t getSurfaceControlGenerationId() const { return mSurfaceControlGenerationId; } // Won't take effect until next EGLSurface creation void setSwapBehavior(SwapBehavior swapBehavior); @@ -253,6 +254,9 @@ private: // The SurfaceControl reference is passed from ViewRootImpl, can be set to // NULL to remove the reference ASurfaceControl* mSurfaceControl = nullptr; + // id to track surface control changes and WebViewFunctor uses it to determine + // whether reparenting is needed + int32_t mSurfaceControlGenerationId = 0; // stopped indicates the CanvasContext will reject actual redraw operations, // and defer repaint until it is un-stopped bool mStopped = false; |
