diff options
author | Huihong Luo <huisinro@google.com> | 2021-06-18 19:53:34 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-06-18 19:53:34 +0000 |
commit | 17410b668fc420b3a725a21d0df83d985fc8d5fc (patch) | |
tree | ae3a58215a5caca6566f5c099bc10224746b4af3 /graphics/java/android | |
parent | e5a810e1d4c54ba3d9d5a6a0850f86e5702fd3cf (diff) | |
parent | 34f42fdecdf380d82f2be32b3564517002cc2112 (diff) |
Merge "Fix z-order for webview surface control" into sc-dev
Diffstat (limited to 'graphics/java/android')
-rw-r--r-- | graphics/java/android/graphics/HardwareRenderer.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/graphics/java/android/graphics/HardwareRenderer.java b/graphics/java/android/graphics/HardwareRenderer.java index 6aa74cb415f9..e141d5178570 100644 --- a/graphics/java/android/graphics/HardwareRenderer.java +++ b/graphics/java/android/graphics/HardwareRenderer.java @@ -762,6 +762,16 @@ public class HardwareRenderer { nSetASurfaceTransactionCallback(mNativeProxy, callback); } + private PrepareSurfaceControlForWebviewCallback mAPrepareSurfaceControlForWebviewCallback; + + /** @hide */ + public void setPrepareSurfaceControlForWebviewCallback( + PrepareSurfaceControlForWebviewCallback callback) { + // ensure callback is kept alive on the java side since weak ref is used in native code + mAPrepareSurfaceControlForWebviewCallback = callback; + nSetPrepareSurfaceControlForWebviewCallback(mNativeProxy, callback); + } + /** @hide */ public void setFrameCallback(FrameDrawingCallback callback) { nSetFrameCallback(mNativeProxy, callback); @@ -876,6 +886,19 @@ public class HardwareRenderer { session.close(); } + /** + * Interface used to receive callbacks when Webview requests a surface control. + * + * @hide + */ + public interface PrepareSurfaceControlForWebviewCallback { + /** + * Invoked when Webview calls to get a surface control. + * + */ + void prepare(); + } + /** * Interface used to receive callbacks when a transaction needs to be merged. * @@ -1374,6 +1397,9 @@ public class HardwareRenderer { private static native void nSetASurfaceTransactionCallback(long nativeProxy, ASurfaceTransactionCallback callback); + private static native void nSetPrepareSurfaceControlForWebviewCallback(long nativeProxy, + PrepareSurfaceControlForWebviewCallback callback); + private static native void nSetFrameCallback(long nativeProxy, FrameDrawingCallback callback); private static native void nSetFrameCompleteCallback(long nativeProxy, |