OLD | NEW |
1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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/layers/layer.h" | 5 #include "cc/layers/layer.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 inputs_.mask_layer->RemoveFromParent(); | 412 inputs_.mask_layer->RemoveFromParent(); |
413 } | 413 } |
414 inputs_.mask_layer = mask_layer; | 414 inputs_.mask_layer = mask_layer; |
415 if (inputs_.mask_layer.get()) { | 415 if (inputs_.mask_layer.get()) { |
416 // The mask layer should not have any children. | 416 // The mask layer should not have any children. |
417 DCHECK(inputs_.mask_layer->children().empty()); | 417 DCHECK(inputs_.mask_layer->children().empty()); |
418 | 418 |
419 inputs_.mask_layer->RemoveFromParent(); | 419 inputs_.mask_layer->RemoveFromParent(); |
420 DCHECK(!inputs_.mask_layer->parent()); | 420 DCHECK(!inputs_.mask_layer->parent()); |
421 inputs_.mask_layer->SetParent(this); | 421 inputs_.mask_layer->SetParent(this); |
422 inputs_.mask_layer->SetIsMask(true); | 422 if (inputs_.filters.IsEmpty()) { |
| 423 inputs_.mask_layer->SetLayerMaskType( |
| 424 Layer::LayerMaskType::MULTI_TEXTURE_MASK); |
| 425 } else { |
| 426 inputs_.mask_layer->SetLayerMaskType( |
| 427 Layer::LayerMaskType::SINGLE_TEXTURE_MASK); |
| 428 } |
423 } | 429 } |
424 SetSubtreePropertyChanged(); | 430 SetSubtreePropertyChanged(); |
425 SetNeedsFullTreeSync(); | 431 SetNeedsFullTreeSync(); |
426 } | 432 } |
427 | 433 |
428 void Layer::SetFilters(const FilterOperations& filters) { | 434 void Layer::SetFilters(const FilterOperations& filters) { |
429 DCHECK(IsPropertyChangeAllowed()); | 435 DCHECK(IsPropertyChangeAllowed()); |
430 if (inputs_.filters == filters) | 436 if (inputs_.filters == filters) |
431 return; | 437 return; |
432 inputs_.filters = filters; | 438 inputs_.filters = filters; |
| 439 if (inputs_.mask_layer) |
| 440 inputs_.mask_layer->SetLayerMaskType( |
| 441 Layer::LayerMaskType::SINGLE_TEXTURE_MASK); |
433 SetSubtreePropertyChanged(); | 442 SetSubtreePropertyChanged(); |
434 SetNeedsCommit(); | 443 SetNeedsCommit(); |
435 } | 444 } |
436 | 445 |
437 void Layer::SetBackgroundFilters(const FilterOperations& filters) { | 446 void Layer::SetBackgroundFilters(const FilterOperations& filters) { |
438 DCHECK(IsPropertyChangeAllowed()); | 447 DCHECK(IsPropertyChangeAllowed()); |
439 if (inputs_.background_filters == filters) | 448 if (inputs_.background_filters == filters) |
440 return; | 449 return; |
441 inputs_.background_filters = filters; | 450 inputs_.background_filters = filters; |
442 SetSubtreePropertyChanged(); | 451 SetSubtreePropertyChanged(); |
(...skipping 1127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1570 ->num_copy_requests_in_subtree; | 1579 ->num_copy_requests_in_subtree; |
1571 } | 1580 } |
1572 | 1581 |
1573 gfx::Transform Layer::screen_space_transform() const { | 1582 gfx::Transform Layer::screen_space_transform() const { |
1574 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId); | 1583 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId); |
1575 return draw_property_utils::ScreenSpaceTransform( | 1584 return draw_property_utils::ScreenSpaceTransform( |
1576 this, layer_tree_host_->property_trees()->transform_tree); | 1585 this, layer_tree_host_->property_trees()->transform_tree); |
1577 } | 1586 } |
1578 | 1587 |
1579 } // namespace cc | 1588 } // namespace cc |
OLD | NEW |