| 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 |