blob: b72e037e99891f29fc5e85c7c181c6fcffaf7eb3 [file] [log] [blame]
// Copyright (c) 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#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;
using base::android::ScopedJavaLocalRef;
namespace android_webview {
JavaBrowserViewRendererHelper::JavaBrowserViewRendererHelper() {
}
JavaBrowserViewRendererHelper::~JavaBrowserViewRendererHelper() {
}
// static
JavaBrowserViewRendererHelper* JavaBrowserViewRendererHelper::GetInstance() {
static JavaBrowserViewRendererHelper* g_instance =
new JavaBrowserViewRendererHelper;
return g_instance;
}
ScopedJavaLocalRef<jobject> JavaBrowserViewRendererHelper::CreateBitmap(
JNIEnv* env,
int width,
int height,
const base::android::JavaRef<jobject>& jcanvas,
void* owner_key) {
TRACE_EVENT0("android_webview", "RendererHelper::CreateBitmap");
return width <= 0 || height <= 0 ? ScopedJavaLocalRef<jobject>() :
Java_JavaBrowserViewRendererHelper_createBitmap(
env, width, height, jcanvas.obj(),
reinterpret_cast<jint>(owner_key));
}
void JavaBrowserViewRendererHelper::DrawBitmapIntoCanvas(
JNIEnv* env,
const JavaRef<jobject>& jbitmap,
const JavaRef<jobject>& jcanvas,
int x,
int y) {
TRACE_EVENT0("android_webview", "RendererHelper::DrawBitmapIntoCanvas");
Java_JavaBrowserViewRendererHelper_drawBitmapIntoCanvas(
env, jbitmap.obj(), jcanvas.obj(), x, y);
}
ScopedJavaLocalRef<jobject>
JavaBrowserViewRendererHelper::RecordBitmapIntoPicture(
JNIEnv* env,
const JavaRef<jobject>& jbitmap) {
TRACE_EVENT0("android_webview", "RendererHelper::RecordBitmapIntoPicture");
return Java_JavaBrowserViewRendererHelper_recordBitmapIntoPicture(
env, jbitmap.obj());
}
bool RegisterJavaBrowserViewRendererHelper(JNIEnv* env) {
return RegisterNativesImpl(env) >= 0;
}
} // namespace android_webview