Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 "cc/trees/layer_tree_host_impl.h" | 5 #include "cc/trees/layer_tree_host_impl.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <limits> | 8 #include <limits> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1338 } | 1338 } |
| 1339 | 1339 |
| 1340 if (needs_commit) | 1340 if (needs_commit) |
| 1341 client_->SetNeedsCommitOnImplThread(); | 1341 client_->SetNeedsCommitOnImplThread(); |
| 1342 } | 1342 } |
| 1343 | 1343 |
| 1344 void LayerTreeHostImpl::SetExternalDrawConstraints( | 1344 void LayerTreeHostImpl::SetExternalDrawConstraints( |
| 1345 const gfx::Transform& transform, | 1345 const gfx::Transform& transform, |
| 1346 const gfx::Rect& viewport, | 1346 const gfx::Rect& viewport, |
| 1347 const gfx::Rect& clip, | 1347 const gfx::Rect& clip, |
| 1348 const gfx::Rect& device_rect_for_tiling, | |
| 1348 bool resourceless_software_draw) { | 1349 bool resourceless_software_draw) { |
| 1349 if (external_transform_ != transform || external_viewport_ != viewport || | 1350 if (external_transform_ != transform || external_viewport_ != viewport || |
| 1350 resourceless_software_draw_ != resourceless_software_draw) { | 1351 resourceless_software_draw_ != resourceless_software_draw) { |
| 1351 active_tree_->set_needs_update_draw_properties(); | 1352 active_tree_->set_needs_update_draw_properties(); |
| 1352 } | 1353 } |
| 1353 | 1354 |
| 1354 external_transform_ = transform; | |
| 1355 external_viewport_ = viewport; | 1355 external_viewport_ = viewport; |
| 1356 external_clip_ = clip; | 1356 external_clip_ = clip; |
| 1357 resourceless_software_draw_ = resourceless_software_draw; | 1357 resourceless_software_draw_ = resourceless_software_draw; |
| 1358 | |
| 1359 // |external_transform_| for Android WebView child compositor hardware draw | |
| 1360 // is an identity matrix. For software draw, |external_transform_| is what's | |
| 1361 // passed in. | |
| 1362 if (!resourceless_software_draw_) { | |
| 1363 external_transform_ = gfx::Transform(); | |
| 1364 external_viewport_rect_for_tiling_ = device_rect_for_tiling; | |
| 1365 external_transform_for_tiling_ = transform; | |
|
aelias_OOO_until_Jul13
2014/07/16 00:32:56
I find it confusing to repurpose the "transform" a
hush (inactive)
2014/07/16 20:45:32
I added external_tiling_transform as the parameter
| |
| 1366 } else { | |
| 1367 external_transform_ = transform; | |
| 1368 } | |
| 1358 } | 1369 } |
| 1359 | 1370 |
| 1360 void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) { | 1371 void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) { |
| 1361 if (damage_rect.IsEmpty()) | 1372 if (damage_rect.IsEmpty()) |
| 1362 return; | 1373 return; |
| 1363 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); | 1374 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); |
| 1364 client_->SetNeedsRedrawRectOnImplThread(damage_rect); | 1375 client_->SetNeedsRedrawRectOnImplThread(damage_rect); |
| 1365 } | 1376 } |
| 1366 | 1377 |
| 1367 void LayerTreeHostImpl::BeginFrame(const BeginFrameArgs& args) { | 1378 void LayerTreeHostImpl::BeginFrame(const BeginFrameArgs& args) { |
| (...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2159 device_scale_factor_ = device_scale_factor; | 2170 device_scale_factor_ = device_scale_factor; |
| 2160 | 2171 |
| 2161 UpdateInnerViewportContainerSize(); | 2172 UpdateInnerViewportContainerSize(); |
| 2162 SetFullRootLayerDamage(); | 2173 SetFullRootLayerDamage(); |
| 2163 } | 2174 } |
| 2164 | 2175 |
| 2165 gfx::Size LayerTreeHostImpl::DrawViewportSize() const { | 2176 gfx::Size LayerTreeHostImpl::DrawViewportSize() const { |
| 2166 return DeviceViewport().size(); | 2177 return DeviceViewport().size(); |
| 2167 } | 2178 } |
| 2168 | 2179 |
| 2180 gfx::Rect LayerTreeHostImpl::TilingViewportRect() const { | |
| 2181 gfx::Rect empty; | |
| 2182 if (empty == external_viewport_rect_for_tiling_) | |
| 2183 return gfx::Rect(DrawViewportSize()); | |
| 2184 | |
| 2185 return external_viewport_rect_for_tiling_; | |
| 2186 } | |
| 2187 | |
| 2188 const gfx::Transform& LayerTreeHostImpl::TilingTransform() const { | |
| 2189 return external_transform_for_tiling_; | |
| 2190 } | |
| 2191 | |
| 2169 gfx::Rect LayerTreeHostImpl::DeviceViewport() const { | 2192 gfx::Rect LayerTreeHostImpl::DeviceViewport() const { |
| 2170 if (external_viewport_.IsEmpty()) | 2193 if (external_viewport_.IsEmpty()) |
| 2171 return gfx::Rect(device_viewport_size_); | 2194 return gfx::Rect(device_viewport_size_); |
| 2172 | 2195 |
| 2173 return external_viewport_; | 2196 return external_viewport_; |
| 2174 } | 2197 } |
| 2175 | 2198 |
| 2176 gfx::Rect LayerTreeHostImpl::DeviceClip() const { | 2199 gfx::Rect LayerTreeHostImpl::DeviceClip() const { |
| 2177 if (external_clip_.IsEmpty()) | 2200 if (external_clip_.IsEmpty()) |
| 2178 return DeviceViewport(); | 2201 return DeviceViewport(); |
| (...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3265 } | 3288 } |
| 3266 | 3289 |
| 3267 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { | 3290 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { |
| 3268 std::vector<PictureLayerImpl*>::iterator it = | 3291 std::vector<PictureLayerImpl*>::iterator it = |
| 3269 std::find(picture_layers_.begin(), picture_layers_.end(), layer); | 3292 std::find(picture_layers_.begin(), picture_layers_.end(), layer); |
| 3270 DCHECK(it != picture_layers_.end()); | 3293 DCHECK(it != picture_layers_.end()); |
| 3271 picture_layers_.erase(it); | 3294 picture_layers_.erase(it); |
| 3272 } | 3295 } |
| 3273 | 3296 |
| 3274 } // namespace cc | 3297 } // namespace cc |
| OLD | NEW |