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& external_tiling_rect, |
| 1349 const gfx::Transform& external_tiling_transform, |
1348 bool resourceless_software_draw) { | 1350 bool resourceless_software_draw) { |
1349 if (external_transform_ != transform || external_viewport_ != viewport || | 1351 if (external_transform_ != transform || external_viewport_ != viewport || |
1350 resourceless_software_draw_ != resourceless_software_draw) { | 1352 resourceless_software_draw_ != resourceless_software_draw || |
| 1353 external_tiling_rect_ != external_tiling_rect || |
| 1354 external_tiling_transform_ != external_tiling_transform) { |
1351 active_tree_->set_needs_update_draw_properties(); | 1355 active_tree_->set_needs_update_draw_properties(); |
1352 } | 1356 } |
1353 | 1357 |
1354 external_transform_ = transform; | 1358 external_transform_ = transform; |
1355 external_viewport_ = viewport; | 1359 external_viewport_ = viewport; |
1356 external_clip_ = clip; | 1360 external_clip_ = clip; |
1357 resourceless_software_draw_ = resourceless_software_draw; | 1361 resourceless_software_draw_ = resourceless_software_draw; |
| 1362 |
| 1363 if (!resourceless_software_draw_) { |
| 1364 external_tiling_rect_ = external_tiling_rect; |
| 1365 external_tiling_transform_ = external_tiling_transform; |
| 1366 } |
1358 } | 1367 } |
1359 | 1368 |
1360 void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) { | 1369 void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) { |
1361 if (damage_rect.IsEmpty()) | 1370 if (damage_rect.IsEmpty()) |
1362 return; | 1371 return; |
1363 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); | 1372 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); |
1364 client_->SetNeedsRedrawRectOnImplThread(damage_rect); | 1373 client_->SetNeedsRedrawRectOnImplThread(damage_rect); |
1365 } | 1374 } |
1366 | 1375 |
1367 void LayerTreeHostImpl::BeginFrame(const BeginFrameArgs& args) { | 1376 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; | 2168 device_scale_factor_ = device_scale_factor; |
2160 | 2169 |
2161 UpdateInnerViewportContainerSize(); | 2170 UpdateInnerViewportContainerSize(); |
2162 SetFullRootLayerDamage(); | 2171 SetFullRootLayerDamage(); |
2163 } | 2172 } |
2164 | 2173 |
2165 gfx::Size LayerTreeHostImpl::DrawViewportSize() const { | 2174 gfx::Size LayerTreeHostImpl::DrawViewportSize() const { |
2166 return DeviceViewport().size(); | 2175 return DeviceViewport().size(); |
2167 } | 2176 } |
2168 | 2177 |
| 2178 gfx::Rect LayerTreeHostImpl::ExternalTilingRect() const { |
| 2179 if (external_tiling_rect_.IsEmpty()) |
| 2180 return gfx::Rect(DrawViewportSize()); |
| 2181 |
| 2182 return external_tiling_rect_; |
| 2183 } |
| 2184 |
| 2185 const gfx::Transform& LayerTreeHostImpl::ExternalTilingTransform() const { |
| 2186 return external_tiling_transform_; |
| 2187 } |
| 2188 |
2169 gfx::Rect LayerTreeHostImpl::DeviceViewport() const { | 2189 gfx::Rect LayerTreeHostImpl::DeviceViewport() const { |
2170 if (external_viewport_.IsEmpty()) | 2190 if (external_viewport_.IsEmpty()) |
2171 return gfx::Rect(device_viewport_size_); | 2191 return gfx::Rect(device_viewport_size_); |
2172 | 2192 |
2173 return external_viewport_; | 2193 return external_viewport_; |
2174 } | 2194 } |
2175 | 2195 |
2176 gfx::Rect LayerTreeHostImpl::DeviceClip() const { | 2196 gfx::Rect LayerTreeHostImpl::DeviceClip() const { |
2177 if (external_clip_.IsEmpty()) | 2197 if (external_clip_.IsEmpty()) |
2178 return DeviceViewport(); | 2198 return DeviceViewport(); |
(...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3265 } | 3285 } |
3266 | 3286 |
3267 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { | 3287 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { |
3268 std::vector<PictureLayerImpl*>::iterator it = | 3288 std::vector<PictureLayerImpl*>::iterator it = |
3269 std::find(picture_layers_.begin(), picture_layers_.end(), layer); | 3289 std::find(picture_layers_.begin(), picture_layers_.end(), layer); |
3270 DCHECK(it != picture_layers_.end()); | 3290 DCHECK(it != picture_layers_.end()); |
3271 picture_layers_.erase(it); | 3291 picture_layers_.erase(it); |
3272 } | 3292 } |
3273 | 3293 |
3274 } // namespace cc | 3294 } // namespace cc |
OLD | NEW |