| 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/android/build_info.h" | 9 #include "base/android/build_info.h" |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 #include "content/browser/renderer_host/render_process_host_impl.h" | 56 #include "content/browser/renderer_host/render_process_host_impl.h" |
| 57 #include "content/browser/renderer_host/render_view_host_impl.h" | 57 #include "content/browser/renderer_host/render_view_host_impl.h" |
| 58 #include "content/browser/renderer_host/render_widget_host_impl.h" | 58 #include "content/browser/renderer_host/render_widget_host_impl.h" |
| 59 #include "content/common/gpu/client/gl_helper.h" | 59 #include "content/common/gpu/client/gl_helper.h" |
| 60 #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" | 60 #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" |
| 61 #include "content/common/gpu/gpu_messages.h" | 61 #include "content/common/gpu/gpu_messages.h" |
| 62 #include "content/common/gpu/gpu_process_launch_causes.h" | 62 #include "content/common/gpu/gpu_process_launch_causes.h" |
| 63 #include "content/common/input/did_overscroll_params.h" | 63 #include "content/common/input/did_overscroll_params.h" |
| 64 #include "content/common/input_messages.h" | 64 #include "content/common/input_messages.h" |
| 65 #include "content/common/view_messages.h" | 65 #include "content/common/view_messages.h" |
| 66 #include "content/public/browser/android/compositor.h" |
| 66 #include "content/public/browser/browser_thread.h" | 67 #include "content/public/browser/browser_thread.h" |
| 67 #include "content/public/browser/devtools_agent_host.h" | 68 #include "content/public/browser/devtools_agent_host.h" |
| 68 #include "content/public/browser/render_view_host.h" | 69 #include "content/public/browser/render_view_host.h" |
| 69 #include "content/public/browser/render_widget_host_iterator.h" | 70 #include "content/public/browser/render_widget_host_iterator.h" |
| 70 #include "content/public/common/content_switches.h" | 71 #include "content/public/common/content_switches.h" |
| 71 #include "gpu/command_buffer/client/gles2_implementation.h" | 72 #include "gpu/command_buffer/client/gles2_implementation.h" |
| 72 #include "gpu/command_buffer/client/gles2_interface.h" | 73 #include "gpu/command_buffer/client/gles2_interface.h" |
| 73 #include "gpu/config/gpu_driver_bug_workaround_type.h" | 74 #include "gpu/config/gpu_driver_bug_workaround_type.h" |
| 74 #include "skia/ext/image_operations.h" | 75 #include "skia/ext/image_operations.h" |
| 75 #include "third_party/khronos/GLES2/gl2.h" | 76 #include "third_party/khronos/GLES2/gl2.h" |
| (...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 463 } | 464 } |
| 464 | 465 |
| 465 scoped_refptr<cc::Layer> RenderWidgetHostViewAndroid::CreateDelegatedLayer() | 466 scoped_refptr<cc::Layer> RenderWidgetHostViewAndroid::CreateDelegatedLayer() |
| 466 const { | 467 const { |
| 467 scoped_refptr<cc::Layer> delegated_layer; | 468 scoped_refptr<cc::Layer> delegated_layer; |
| 468 if (!surface_id_.is_null()) { | 469 if (!surface_id_.is_null()) { |
| 469 cc::SurfaceManager* manager = CompositorImpl::GetSurfaceManager(); | 470 cc::SurfaceManager* manager = CompositorImpl::GetSurfaceManager(); |
| 470 DCHECK(manager); | 471 DCHECK(manager); |
| 471 // manager must outlive compositors using it. | 472 // manager must outlive compositors using it. |
| 472 scoped_refptr<cc::SurfaceLayer> surface_layer = cc::SurfaceLayer::Create( | 473 scoped_refptr<cc::SurfaceLayer> surface_layer = cc::SurfaceLayer::Create( |
| 474 Compositor::LayerSettings(), |
| 473 base::Bind(&SatisfyCallback, base::Unretained(manager)), | 475 base::Bind(&SatisfyCallback, base::Unretained(manager)), |
| 474 base::Bind(&RequireCallback, base::Unretained(manager))); | 476 base::Bind(&RequireCallback, base::Unretained(manager))); |
| 475 surface_layer->SetSurfaceId(surface_id_, 1.f, texture_size_in_layer_); | 477 surface_layer->SetSurfaceId(surface_id_, 1.f, texture_size_in_layer_); |
| 476 delegated_layer = surface_layer; | 478 delegated_layer = surface_layer; |
| 477 } else { | 479 } else { |
| 478 DCHECK(frame_provider_.get()); | 480 DCHECK(frame_provider_.get()); |
| 479 delegated_layer = cc::DelegatedRendererLayer::Create(frame_provider_); | 481 delegated_layer = cc::DelegatedRendererLayer::Create( |
| 482 Compositor::LayerSettings(), frame_provider_); |
| 480 } | 483 } |
| 481 delegated_layer->SetBounds(content_size_in_layer_); | 484 delegated_layer->SetBounds(content_size_in_layer_); |
| 482 delegated_layer->SetIsDrawable(true); | 485 delegated_layer->SetIsDrawable(true); |
| 483 delegated_layer->SetContentsOpaque(true); | 486 delegated_layer->SetContentsOpaque(true); |
| 484 | 487 |
| 485 return delegated_layer; | 488 return delegated_layer; |
| 486 } | 489 } |
| 487 | 490 |
| 488 bool RenderWidgetHostViewAndroid::HasValidFrame() const { | 491 bool RenderWidgetHostViewAndroid::HasValidFrame() const { |
| 489 if (!content_view_core_) | 492 if (!content_view_core_) |
| (...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1072 } else { | 1075 } else { |
| 1073 if (!resource_collection_.get()) { | 1076 if (!resource_collection_.get()) { |
| 1074 resource_collection_ = new cc::DelegatedFrameResourceCollection; | 1077 resource_collection_ = new cc::DelegatedFrameResourceCollection; |
| 1075 resource_collection_->SetClient(this); | 1078 resource_collection_->SetClient(this); |
| 1076 } | 1079 } |
| 1077 if (!frame_provider_.get() || | 1080 if (!frame_provider_.get() || |
| 1078 texture_size_in_layer_ != frame_provider_->frame_size()) { | 1081 texture_size_in_layer_ != frame_provider_->frame_size()) { |
| 1079 RemoveLayers(); | 1082 RemoveLayers(); |
| 1080 frame_provider_ = new cc::DelegatedFrameProvider( | 1083 frame_provider_ = new cc::DelegatedFrameProvider( |
| 1081 resource_collection_.get(), frame_data.Pass()); | 1084 resource_collection_.get(), frame_data.Pass()); |
| 1082 layer_ = cc::DelegatedRendererLayer::Create(frame_provider_); | 1085 layer_ = cc::DelegatedRendererLayer::Create(Compositor::LayerSettings(), |
| 1086 frame_provider_); |
| 1083 AttachLayers(); | 1087 AttachLayers(); |
| 1084 } else { | 1088 } else { |
| 1085 frame_provider_->SetFrameData(frame_data.Pass()); | 1089 frame_provider_->SetFrameData(frame_data.Pass()); |
| 1086 } | 1090 } |
| 1087 } | 1091 } |
| 1088 } | 1092 } |
| 1089 | 1093 |
| 1090 void RenderWidgetHostViewAndroid::SwapDelegatedFrame( | 1094 void RenderWidgetHostViewAndroid::SwapDelegatedFrame( |
| 1091 uint32 output_surface_id, | 1095 uint32 output_surface_id, |
| 1092 scoped_ptr<cc::DelegatedFrameData> frame_data) { | 1096 scoped_ptr<cc::DelegatedFrameData> frame_data) { |
| (...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2015 results->orientationAngle = display.RotationAsDegree(); | 2019 results->orientationAngle = display.RotationAsDegree(); |
| 2016 results->orientationType = | 2020 results->orientationType = |
| 2017 RenderWidgetHostViewBase::GetOrientationTypeForMobile(display); | 2021 RenderWidgetHostViewBase::GetOrientationTypeForMobile(display); |
| 2018 gfx::DeviceDisplayInfo info; | 2022 gfx::DeviceDisplayInfo info; |
| 2019 results->depth = info.GetBitsPerPixel(); | 2023 results->depth = info.GetBitsPerPixel(); |
| 2020 results->depthPerComponent = info.GetBitsPerComponent(); | 2024 results->depthPerComponent = info.GetBitsPerComponent(); |
| 2021 results->isMonochrome = (results->depthPerComponent == 0); | 2025 results->isMonochrome = (results->depthPerComponent == 0); |
| 2022 } | 2026 } |
| 2023 | 2027 |
| 2024 } // namespace content | 2028 } // namespace content |
| OLD | NEW |