summaryrefslogtreecommitdiff
path: root/libs/hwui/renderthread/CanvasContext.h
diff options
context:
space:
mode:
authorHuihong Luo <huisinro@google.com>2021-06-25 13:59:39 -0700
committerHuihong Luo <huisinro@google.com>2021-06-28 20:36:40 -0700
commit540fdf89b1432f99e3c01d6ec838d434609eefb7 (patch)
tree7d2a02978e9bb3dfbcdef4b95968a932b7f0c2ec /libs/hwui/renderthread/CanvasContext.h
parentfb0faec367832e8fdc05508d831a697972dfa4f2 (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.h4
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;