Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/renderer_host/render_widget_host_view_android.h" | 5 #include "content/browser/renderer_host/render_widget_host_view_android.h" |
| 6 | 6 |
| 7 #include <android/bitmap.h> | 7 #include <android/bitmap.h> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 148 weak_ptr_factory_(this), | 148 weak_ptr_factory_(this), |
| 149 overscroll_effect_enabled_( | 149 overscroll_effect_enabled_( |
| 150 !CommandLine::ForCurrentProcess()-> | 150 !CommandLine::ForCurrentProcess()-> |
| 151 HasSwitch(switches::kDisableOverscrollEdgeEffect)), | 151 HasSwitch(switches::kDisableOverscrollEdgeEffect)), |
| 152 overscroll_effect_(OverscrollGlow::Create(overscroll_effect_enabled_)), | 152 overscroll_effect_(OverscrollGlow::Create(overscroll_effect_enabled_)), |
| 153 flush_input_requested_(false), | 153 flush_input_requested_(false), |
| 154 accelerated_surface_route_id_(0), | 154 accelerated_surface_route_id_(0), |
| 155 using_synchronous_compositor_(SynchronousCompositorImpl::FromID( | 155 using_synchronous_compositor_(SynchronousCompositorImpl::FromID( |
| 156 widget_host->GetProcess()->GetID(), | 156 widget_host->GetProcess()->GetID(), |
| 157 widget_host->GetRoutingID()) != NULL), | 157 widget_host->GetRoutingID()) != NULL), |
| 158 frame_evictor_(new DelegatedFrameEvictor(this)) { | 158 frame_evictor_(new DelegatedFrameEvictor(this)), |
| 159 if (!UsingDelegatedRenderer()) { | 159 using_delegated_renderer_(UsingDelegatedRenderer()) { |
|
no sievers
2014/02/14 18:42:48
I'd remove the function now and inline the code he
sivag
2014/02/17 07:51:13
Done.
| |
| 160 if (!using_delegated_renderer_) { | |
| 160 texture_layer_ = cc::TextureLayer::Create(NULL); | 161 texture_layer_ = cc::TextureLayer::Create(NULL); |
| 161 layer_ = texture_layer_; | 162 layer_ = texture_layer_; |
| 162 } | 163 } |
| 163 | 164 |
| 164 host_->SetView(this); | 165 host_->SetView(this); |
| 165 SetContentViewCore(content_view_core); | 166 SetContentViewCore(content_view_core); |
| 166 ImageTransportFactoryAndroid::AddObserver(this); | 167 ImageTransportFactoryAndroid::AddObserver(this); |
| 167 } | 168 } |
| 168 | 169 |
| 169 RenderWidgetHostViewAndroid::~RenderWidgetHostViewAndroid() { | 170 RenderWidgetHostViewAndroid::~RenderWidgetHostViewAndroid() { |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 317 | 318 |
| 318 bool RenderWidgetHostViewAndroid::HasValidFrame() const { | 319 bool RenderWidgetHostViewAndroid::HasValidFrame() const { |
| 319 if (!content_view_core_) | 320 if (!content_view_core_) |
| 320 return false; | 321 return false; |
| 321 if (!layer_) | 322 if (!layer_) |
| 322 return false; | 323 return false; |
| 323 | 324 |
| 324 if (texture_size_in_layer_.IsEmpty()) | 325 if (texture_size_in_layer_.IsEmpty()) |
| 325 return false; | 326 return false; |
| 326 | 327 |
| 327 if (UsingDelegatedRenderer()) { | 328 if (using_delegated_renderer_) { |
| 328 if (!delegated_renderer_layer_.get()) | 329 if (!delegated_renderer_layer_.get()) |
| 329 return false; | 330 return false; |
| 330 } else { | 331 } else { |
| 331 if (texture_id_in_layer_ == 0) | 332 if (texture_id_in_layer_ == 0) |
| 332 return false; | 333 return false; |
| 333 } | 334 } |
| 334 | 335 |
| 335 return true; | 336 return true; |
| 336 } | 337 } |
| 337 | 338 |
| (...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 846 | 847 |
| 847 if (layer_ && layer_->layer_tree_host()) { | 848 if (layer_ && layer_->layer_tree_host()) { |
| 848 for (size_t i = 0; i < frame->metadata.latency_info.size(); i++) { | 849 for (size_t i = 0; i < frame->metadata.latency_info.size(); i++) { |
| 849 scoped_ptr<cc::SwapPromise> swap_promise( | 850 scoped_ptr<cc::SwapPromise> swap_promise( |
| 850 new cc::LatencyInfoSwapPromise(frame->metadata.latency_info[i])); | 851 new cc::LatencyInfoSwapPromise(frame->metadata.latency_info[i])); |
| 851 layer_->layer_tree_host()->QueueSwapPromise(swap_promise.Pass()); | 852 layer_->layer_tree_host()->QueueSwapPromise(swap_promise.Pass()); |
| 852 } | 853 } |
| 853 } | 854 } |
| 854 | 855 |
| 855 if (frame->delegated_frame_data) { | 856 if (frame->delegated_frame_data) { |
| 856 DCHECK(UsingDelegatedRenderer()); | 857 DCHECK(using_delegated_renderer_); |
| 857 | 858 |
| 858 DCHECK(frame->delegated_frame_data); | 859 DCHECK(frame->delegated_frame_data); |
| 859 DCHECK(!frame->delegated_frame_data->render_pass_list.empty()); | 860 DCHECK(!frame->delegated_frame_data->render_pass_list.empty()); |
| 860 | 861 |
| 861 cc::RenderPass* root_pass = | 862 cc::RenderPass* root_pass = |
| 862 frame->delegated_frame_data->render_pass_list.back(); | 863 frame->delegated_frame_data->render_pass_list.back(); |
| 863 texture_size_in_layer_ = root_pass->output_rect.size(); | 864 texture_size_in_layer_ = root_pass->output_rect.size(); |
| 864 ComputeContentsSize(frame->metadata); | 865 ComputeContentsSize(frame->metadata); |
| 865 | 866 |
| 866 SwapDelegatedFrame(output_surface_id, frame->delegated_frame_data.Pass()); | 867 SwapDelegatedFrame(output_surface_id, frame->delegated_frame_data.Pass()); |
| 867 frame_evictor_->SwappedFrame(!host_->is_hidden()); | 868 frame_evictor_->SwappedFrame(!host_->is_hidden()); |
| 868 return; | 869 return; |
| 869 } | 870 } |
| 870 | 871 |
| 871 DCHECK(!UsingDelegatedRenderer()); | 872 DCHECK(!using_delegated_renderer_); |
| 872 | 873 |
| 873 if (!frame->gl_frame_data || frame->gl_frame_data->mailbox.IsZero()) | 874 if (!frame->gl_frame_data || frame->gl_frame_data->mailbox.IsZero()) |
| 874 return; | 875 return; |
| 875 | 876 |
| 876 if (output_surface_id != last_output_surface_id_) { | 877 if (output_surface_id != last_output_surface_id_) { |
| 877 current_mailbox_ = gpu::Mailbox(); | 878 current_mailbox_ = gpu::Mailbox(); |
| 878 last_output_surface_id_ = kUndefinedOutputSurfaceId; | 879 last_output_surface_id_ = kUndefinedOutputSurfaceId; |
| 879 } | 880 } |
| 880 | 881 |
| 881 base::Closure callback = base::Bind(&InsertSyncPointAndAckForCompositor, | 882 base::Closure callback = base::Bind(&InsertSyncPointAndAckForCompositor, |
| (...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1506 // RenderWidgetHostView, public: | 1507 // RenderWidgetHostView, public: |
| 1507 | 1508 |
| 1508 // static | 1509 // static |
| 1509 RenderWidgetHostView* | 1510 RenderWidgetHostView* |
| 1510 RenderWidgetHostView::CreateViewForWidget(RenderWidgetHost* widget) { | 1511 RenderWidgetHostView::CreateViewForWidget(RenderWidgetHost* widget) { |
| 1511 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(widget); | 1512 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(widget); |
| 1512 return new RenderWidgetHostViewAndroid(rwhi, NULL); | 1513 return new RenderWidgetHostViewAndroid(rwhi, NULL); |
| 1513 } | 1514 } |
| 1514 | 1515 |
| 1515 } // namespace content | 1516 } // namespace content |
| OLD | NEW |