Chromium Code Reviews| 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..f58b3da438bd99cc6f25e2cbe07d4f1819ae010f 100644 |
| --- a/content/browser/android/content_view_render_view.cc |
| +++ b/content/browser/android/content_view_render_view.cc |
| @@ -13,6 +13,7 @@ |
| #include "base/message_loop/message_loop.h" |
| #include "cc/layers/layer.h" |
| #include "content/browser/android/content_view_core_impl.h" |
| +#include "content/browser/android/layer_tree_build_helper.h" |
| #include "content/public/browser/android/compositor.h" |
| #include "content/public/browser/android/content_view_layer_renderer.h" |
| #include "jni/ContentViewRenderView_jni.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) { |
| + if (!native_build_helper) |
|
Yaron
2014/04/10 01:26:09
Can you CHECK this? Why can this be 0?
Yusuf
2014/04/23 00:16:14
Done.
|
| + return; |
| + 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,7 @@ 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_ = layer_tree_build_helper_->GetLayerTree(content_view); |
| } |
| void ContentViewRenderView::SurfaceCreated( |
| @@ -127,6 +139,6 @@ void ContentViewRenderView::OnSwapBuffersCompleted() { |
| void ContentViewRenderView::InitCompositor() { |
| if (!compositor_) |
| compositor_.reset(Compositor::Create(this, root_window_)); |
| + compositor_->SetRootLayer(root_layer_); |
|
Yaron
2014/04/10 01:26:09
I think this should stay in SetCurrentContentView,
Yusuf
2014/04/23 00:16:14
Done.
|
| } |
| - |
| } // namespace content |