From fd03b658fc331a7504e7e885d3ecaac3a7d9264a Mon Sep 17 00:00:00 2001 From: "joth@chromium.org" Date: Fri, 24 May 2013 09:42:22 +0000 Subject: Cache auxiliary bitmap across draw frames While this mode isn't intended to be used in anger, the slow down caused by reallocating the temp bitmap every frame is very high even for a development configuration. Also add a bunch of useful tracing. BUG= Review URL: https://chromiumcodereview.appspot.com/15795002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202035 0039d316-1c4b-4281-b951-d872f2087c98 --- android_webview/native/java_browser_view_renderer_helper.cc | 11 +++++++++-- android_webview/native/java_browser_view_renderer_helper.h | 3 ++- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'android_webview/native') diff --git a/android_webview/native/java_browser_view_renderer_helper.cc b/android_webview/native/java_browser_view_renderer_helper.cc index b2cf4e9..21ec095 100644 --- a/android_webview/native/java_browser_view_renderer_helper.cc +++ b/android_webview/native/java_browser_view_renderer_helper.cc @@ -4,6 +4,7 @@ #include "android_webview/native/java_browser_view_renderer_helper.h" +#include "base/debug/trace_event.h" #include "jni/JavaBrowserViewRendererHelper_jni.h" using base::android::JavaRef; @@ -20,15 +21,20 @@ JavaBrowserViewRendererHelper::~JavaBrowserViewRendererHelper() { ScopedJavaLocalRef JavaBrowserViewRendererHelper::CreateBitmap( JNIEnv* env, int width, - int height) { + int height, + bool cache_result) { + TRACE_EVENT1("android_webview", "RendererHelper::CreateBitmap", + "cache_result", cache_result); return width <= 0 || height <= 0 ? ScopedJavaLocalRef() : - Java_JavaBrowserViewRendererHelper_createBitmap(env, width, height); + Java_JavaBrowserViewRendererHelper_createBitmap(env, width, height, + cache_result); } void JavaBrowserViewRendererHelper::DrawBitmapIntoCanvas( JNIEnv* env, const JavaRef& jbitmap, const JavaRef& jcanvas) { + TRACE_EVENT0("android_webview", "RendererHelper::DrawBitmapIntoCanvas"); Java_JavaBrowserViewRendererHelper_drawBitmapIntoCanvas( env, jbitmap.obj(), jcanvas.obj()); } @@ -37,6 +43,7 @@ ScopedJavaLocalRef JavaBrowserViewRendererHelper::RecordBitmapIntoPicture( JNIEnv* env, const JavaRef& jbitmap) { + TRACE_EVENT0("android_webview", "RendererHelper::RecordBitmapIntoPicture"); return Java_JavaBrowserViewRendererHelper_recordBitmapIntoPicture( env, jbitmap.obj()); } diff --git a/android_webview/native/java_browser_view_renderer_helper.h b/android_webview/native/java_browser_view_renderer_helper.h index d29be80..97fd0c9 100644 --- a/android_webview/native/java_browser_view_renderer_helper.h +++ b/android_webview/native/java_browser_view_renderer_helper.h @@ -22,7 +22,8 @@ class JavaBrowserViewRendererHelper : public BrowserViewRenderer::JavaHelper { virtual base::android::ScopedJavaLocalRef CreateBitmap( JNIEnv* env, int width, - int height) OVERRIDE; + int height, + bool cache_result) OVERRIDE; virtual void DrawBitmapIntoCanvas( JNIEnv* env, const base::android::JavaRef& jbitmap, -- cgit v1.1