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 596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1086 } else { | 1089 } else { |
1087 if (!resource_collection_.get()) { | 1090 if (!resource_collection_.get()) { |
1088 resource_collection_ = new cc::DelegatedFrameResourceCollection; | 1091 resource_collection_ = new cc::DelegatedFrameResourceCollection; |
1089 resource_collection_->SetClient(this); | 1092 resource_collection_->SetClient(this); |
1090 } | 1093 } |
1091 if (!frame_provider_.get() || | 1094 if (!frame_provider_.get() || |
1092 texture_size_in_layer_ != frame_provider_->frame_size()) { | 1095 texture_size_in_layer_ != frame_provider_->frame_size()) { |
1093 RemoveLayers(); | 1096 RemoveLayers(); |
1094 frame_provider_ = new cc::DelegatedFrameProvider( | 1097 frame_provider_ = new cc::DelegatedFrameProvider( |
1095 resource_collection_.get(), frame_data.Pass()); | 1098 resource_collection_.get(), frame_data.Pass()); |
1096 layer_ = cc::DelegatedRendererLayer::Create(frame_provider_); | 1099 layer_ = cc::DelegatedRendererLayer::Create(Compositor::LayerSettings(), |
| 1100 frame_provider_); |
1097 AttachLayers(); | 1101 AttachLayers(); |
1098 } else { | 1102 } else { |
1099 frame_provider_->SetFrameData(frame_data.Pass()); | 1103 frame_provider_->SetFrameData(frame_data.Pass()); |
1100 } | 1104 } |
1101 } | 1105 } |
1102 } | 1106 } |
1103 | 1107 |
1104 void RenderWidgetHostViewAndroid::SwapDelegatedFrame( | 1108 void RenderWidgetHostViewAndroid::SwapDelegatedFrame( |
1105 uint32 output_surface_id, | 1109 uint32 output_surface_id, |
1106 scoped_ptr<cc::DelegatedFrameData> frame_data) { | 1110 scoped_ptr<cc::DelegatedFrameData> frame_data) { |
(...skipping 927 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2034 results->orientationAngle = display.RotationAsDegree(); | 2038 results->orientationAngle = display.RotationAsDegree(); |
2035 results->orientationType = | 2039 results->orientationType = |
2036 RenderWidgetHostViewBase::GetOrientationTypeForMobile(display); | 2040 RenderWidgetHostViewBase::GetOrientationTypeForMobile(display); |
2037 gfx::DeviceDisplayInfo info; | 2041 gfx::DeviceDisplayInfo info; |
2038 results->depth = info.GetBitsPerPixel(); | 2042 results->depth = info.GetBitsPerPixel(); |
2039 results->depthPerComponent = info.GetBitsPerComponent(); | 2043 results->depthPerComponent = info.GetBitsPerComponent(); |
2040 results->isMonochrome = (results->depthPerComponent == 0); | 2044 results->isMonochrome = (results->depthPerComponent == 0); |
2041 } | 2045 } |
2042 | 2046 |
2043 } // namespace content | 2047 } // namespace content |
OLD | NEW |