Merge "Expose DisplayListCanvas.drawGLFunctor to webview" into nyc-dev

This commit is contained in:
Bo Liu
2016-04-19 17:39:15 +00:00
committed by Android (Google) Code Review
2 changed files with 24 additions and 1 deletions

View File

@@ -48880,6 +48880,7 @@ package android.webkit {
public final class WebViewDelegate {
method public void addWebViewAssetPath(android.content.Context);
method public void callDrawGlFunction(android.graphics.Canvas, long);
method public void callDrawGlFunction(android.graphics.Canvas, long, java.lang.Runnable);
method public boolean canInvokeDrawGlFunctor(android.view.View);
method public void detachDrawGlFunctor(android.view.View, long);
method public android.app.Application getApplication();

View File

@@ -107,7 +107,29 @@ public final class WebViewDelegate {
throw new IllegalArgumentException(canvas.getClass().getName()
+ " is not a DisplayList canvas");
}
((DisplayListCanvas) canvas).callDrawGLFunction2(nativeDrawGLFunctor);
((DisplayListCanvas) canvas).drawGLFunctor2(nativeDrawGLFunctor, null);
}
/**
* Calls the function specified with the nativeDrawGLFunctor functor pointer. This
* functionality is used by the WebView for calling into their renderer from the
* framework display lists.
*
* @param canvas a hardware accelerated canvas (see {@link Canvas#isHardwareAccelerated()})
* @param nativeDrawGLFunctor the pointer to the native functor that implements
* system/core/include/utils/Functor.h
* @param releasedRunnable Called when this nativeDrawGLFunctor is no longer referenced by this
* canvas, so is safe to be destroyed.
* @throws IllegalArgumentException if the canvas is not hardware accelerated
*/
public void callDrawGlFunction(@NonNull Canvas canvas, long nativeDrawGLFunctor,
@Nullable Runnable releasedRunnable) {
if (!(canvas instanceof DisplayListCanvas)) {
// Canvas#isHardwareAccelerated() is only true for subclasses of HardwareCanvas.
throw new IllegalArgumentException(canvas.getClass().getName()
+ " is not a DisplayList canvas");
}
((DisplayListCanvas) canvas).drawGLFunctor2(nativeDrawGLFunctor, releasedRunnable);
}
/**