Index: content/browser/android/content_view_render_view.cc |
diff --git a/content/browser/android/content_view_render_view.cc b/content/browser/android/content_view_render_view.cc |
index db42223b18ae88eeb2374d18bcb9818cfb76be2b..459c6d4d6de9a5d2981717a0cb4d75050483b3a5 100644 |
--- a/content/browser/android/content_view_render_view.cc |
+++ b/content/browser/android/content_view_render_view.cc |
@@ -15,6 +15,7 @@ |
#include "content/browser/android/content_view_core_impl.h" |
#include "content/public/browser/android/compositor.h" |
#include "content/public/browser/android/content_view_layer_renderer.h" |
+#include "content/public/browser/android/layer_tree_build_helper.h" |
#include "jni/ContentViewRenderView_jni.h" |
#include "ui/gfx/android/java_bitmap.h" |
#include "ui/gfx/size.h" |
@@ -35,16 +36,30 @@ ContentViewRenderView::ContentViewRenderView(JNIEnv* env, |
jobject obj, |
gfx::NativeWindow root_window) |
: buffers_swapped_during_composite_(false), |
+ root_layer_(cc::Layer::Create()), |
+ layer_tree_build_helper_(new LayerTreeBuildHelper()), |
root_window_(root_window), |
current_surface_format_(0) { |
+ root_layer_->SetIsDrawable(true); |
java_obj_.Reset(env, obj); |
} |
ContentViewRenderView::~ContentViewRenderView() { |
} |
+void ContentViewRenderView::SetLayerTreeBuildHelper(JNIEnv* env, |
+ jobject obj, |
+ jlong native_build_helper) { |
+ CHECK(native_build_helper); |
+ |
+ LayerTreeBuildHelper* build_helper = |
+ reinterpret_cast<LayerTreeBuildHelper*>(native_build_helper); |
+ layer_tree_build_helper_ = build_helper; |
+} |
// static |
-static jlong Init(JNIEnv* env, jobject obj, jlong native_root_window) { |
+static jlong Init(JNIEnv* env, |
+ jobject obj, |
+ jlong native_root_window) { |
gfx::NativeWindow root_window = |
reinterpret_cast<gfx::NativeWindow>(native_root_window); |
ContentViewRenderView* content_view_render_view = |
@@ -61,10 +76,9 @@ void ContentViewRenderView::SetCurrentContentView( |
InitCompositor(); |
ContentViewCoreImpl* content_view = |
reinterpret_cast<ContentViewCoreImpl*>(native_content_view); |
- if (content_view) |
- compositor_->SetRootLayer(content_view->GetLayer()); |
- else |
- compositor_->SetRootLayer(cc::Layer::Create()); |
+ root_layer_ = |
Yaron
2014/04/23 20:57:46
Actually, do we need a ref? Isn't it sufficient to
Yusuf
2014/04/24 00:06:03
Done.
|
+ layer_tree_build_helper_->GetLayerTree(content_view->GetLayer()); |
+ compositor_->SetRootLayer(root_layer_); |
} |
void ContentViewRenderView::SurfaceCreated( |
@@ -128,5 +142,4 @@ void ContentViewRenderView::InitCompositor() { |
if (!compositor_) |
compositor_.reset(Compositor::Create(this, root_window_)); |
} |
- |
} // namespace content |