OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "android_webview/browser/hardware_renderer.h" | 5 #include "android_webview/browser/hardware_renderer.h" |
6 | 6 |
7 #include "android_webview/browser/aw_gl_surface.h" | 7 #include "android_webview/browser/aw_gl_surface.h" |
8 #include "android_webview/browser/deferred_gpu_command_service.h" | 8 #include "android_webview/browser/deferred_gpu_command_service.h" |
9 #include "android_webview/browser/parent_output_surface.h" | 9 #include "android_webview/browser/parent_output_surface.h" |
10 #include "android_webview/browser/shared_renderer_state.h" | 10 #include "android_webview/browser/shared_renderer_state.h" |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 scoped_ptr<DrawGLInput> input = shared_renderer_state_->PassDrawGLInput(); | 147 scoped_ptr<DrawGLInput> input = shared_renderer_state_->PassDrawGLInput(); |
148 if (!resource_collection_.get()) { | 148 if (!resource_collection_.get()) { |
149 resource_collection_ = new cc::DelegatedFrameResourceCollection; | 149 resource_collection_ = new cc::DelegatedFrameResourceCollection; |
150 resource_collection_->SetClient(this); | 150 resource_collection_->SetClient(this); |
151 } | 151 } |
152 | 152 |
153 if (input.get()) { | 153 if (input.get()) { |
154 DCHECK(!input->frame.gl_frame_data); | 154 DCHECK(!input->frame.gl_frame_data); |
155 DCHECK(!input->frame.software_frame_data); | 155 DCHECK(!input->frame.software_frame_data); |
156 | 156 |
| 157 // DelegatedRendererLayerImpl applies the inverse device_scale_factor of the |
| 158 // renderer frame, assuming that the browser compositor will scale |
| 159 // it back up to device scale. But on Android we put our browser layers in |
| 160 // physical pixels and set our browser CC device_scale_factor to 1, so this |
| 161 // suppresses the transform. |
| 162 input->frame.delegated_frame_data->device_scale_factor = 1.0f; |
| 163 |
157 bool size_changed = | 164 bool size_changed = |
158 input->width != view_width_ || input->height != view_height_; | 165 input->width != view_width_ || input->height != view_height_; |
159 view_width_ = input->width; | 166 view_width_ = input->width; |
160 view_height_ = input->height; | 167 view_height_ = input->height; |
161 scroll_offset_ = input->scroll_offset; | 168 scroll_offset_ = input->scroll_offset; |
162 | 169 |
163 if (!frame_provider_ || size_changed) { | 170 if (!frame_provider_ || size_changed) { |
164 if (delegated_layer_) { | 171 if (delegated_layer_) { |
165 delegated_layer_->RemoveFromParent(); | 172 delegated_layer_->RemoveFromParent(); |
166 } | 173 } |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 } | 224 } |
218 | 225 |
219 void HardwareRenderer::UnusedResourcesAreAvailable() { | 226 void HardwareRenderer::UnusedResourcesAreAvailable() { |
220 cc::ReturnedResourceArray returned_resources; | 227 cc::ReturnedResourceArray returned_resources; |
221 resource_collection_->TakeUnusedResourcesForChildCompositor( | 228 resource_collection_->TakeUnusedResourcesForChildCompositor( |
222 &returned_resources); | 229 &returned_resources); |
223 shared_renderer_state_->InsertReturnedResources(returned_resources); | 230 shared_renderer_state_->InsertReturnedResources(returned_resources); |
224 } | 231 } |
225 | 232 |
226 } // namespace android_webview | 233 } // namespace android_webview |
OLD | NEW |