| 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 29 matching lines...) Expand all Loading... |
| 40 | 40 |
| 41 namespace cc { | 41 namespace cc { |
| 42 | 42 |
| 43 base::StaticAtomicSequenceNumber g_next_layer_id; | 43 base::StaticAtomicSequenceNumber g_next_layer_id; |
| 44 | 44 |
| 45 Layer::Inputs::Inputs(int layer_id) | 45 Layer::Inputs::Inputs(int layer_id) |
| 46 : layer_id(layer_id), | 46 : layer_id(layer_id), |
| 47 masks_to_bounds(false), | 47 masks_to_bounds(false), |
| 48 mask_layer(nullptr), | 48 mask_layer(nullptr), |
| 49 opacity(1.f), | 49 opacity(1.f), |
| 50 blend_mode(SkXfermode::kSrcOver_Mode), | 50 blend_mode(SkBlendMode::kSrcOver), |
| 51 is_root_for_isolated_group(false), | 51 is_root_for_isolated_group(false), |
| 52 contents_opaque(false), | 52 contents_opaque(false), |
| 53 is_drawable(false), | 53 is_drawable(false), |
| 54 double_sided(true), | 54 double_sided(true), |
| 55 should_flatten_transform(true), | 55 should_flatten_transform(true), |
| 56 sorting_context_id(0), | 56 sorting_context_id(0), |
| 57 use_parent_backface_visibility(false), | 57 use_parent_backface_visibility(false), |
| 58 background_color(0), | 58 background_color(0), |
| 59 scroll_clip_layer_id(INVALID_ID), | 59 scroll_clip_layer_id(INVALID_ID), |
| 60 user_scrollable_horizontal(true), | 60 user_scrollable_horizontal(true), |
| (...skipping 29 matching lines...) Expand all Loading... |
| 90 scroll_tree_index_(ScrollTree::kInvalidNodeId), | 90 scroll_tree_index_(ScrollTree::kInvalidNodeId), |
| 91 property_tree_sequence_number_(-1), | 91 property_tree_sequence_number_(-1), |
| 92 should_flatten_transform_from_property_tree_(false), | 92 should_flatten_transform_from_property_tree_(false), |
| 93 draws_content_(false), | 93 draws_content_(false), |
| 94 use_local_transform_for_backface_visibility_(false), | 94 use_local_transform_for_backface_visibility_(false), |
| 95 should_check_backface_visibility_(false), | 95 should_check_backface_visibility_(false), |
| 96 force_render_surface_for_testing_(false), | 96 force_render_surface_for_testing_(false), |
| 97 subtree_property_changed_(false), | 97 subtree_property_changed_(false), |
| 98 may_contain_video_(false), | 98 may_contain_video_(false), |
| 99 safe_opaque_background_color_(0), | 99 safe_opaque_background_color_(0), |
| 100 draw_blend_mode_(SkXfermode::kSrcOver_Mode), | 100 draw_blend_mode_(SkBlendMode::kSrcOver), |
| 101 num_unclipped_descendants_(0) {} | 101 num_unclipped_descendants_(0) {} |
| 102 | 102 |
| 103 Layer::~Layer() { | 103 Layer::~Layer() { |
| 104 // Our parent should be holding a reference to us so there should be no | 104 // Our parent should be holding a reference to us so there should be no |
| 105 // way for us to be destroyed while we still have a parent. | 105 // way for us to be destroyed while we still have a parent. |
| 106 DCHECK(!parent()); | 106 DCHECK(!parent()); |
| 107 // Similarly we shouldn't have a layer tree host since it also keeps a | 107 // Similarly we shouldn't have a layer tree host since it also keeps a |
| 108 // reference to us. | 108 // reference to us. |
| 109 DCHECK(!layer_tree_host()); | 109 DCHECK(!layer_tree_host()); |
| 110 | 110 |
| (...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 491 } | 491 } |
| 492 | 492 |
| 493 bool Layer::OpacityCanAnimateOnImplThread() const { | 493 bool Layer::OpacityCanAnimateOnImplThread() const { |
| 494 return false; | 494 return false; |
| 495 } | 495 } |
| 496 | 496 |
| 497 bool Layer::AlwaysUseActiveTreeOpacity() const { | 497 bool Layer::AlwaysUseActiveTreeOpacity() const { |
| 498 return false; | 498 return false; |
| 499 } | 499 } |
| 500 | 500 |
| 501 void Layer::SetBlendMode(SkXfermode::Mode blend_mode) { | 501 void Layer::SetBlendMode(SkBlendMode blend_mode) { |
| 502 DCHECK(IsPropertyChangeAllowed()); | 502 DCHECK(IsPropertyChangeAllowed()); |
| 503 if (inputs_.blend_mode == blend_mode) | 503 if (inputs_.blend_mode == blend_mode) |
| 504 return; | 504 return; |
| 505 | 505 |
| 506 // Allowing only blend modes that are defined in the CSS Compositing standard: | 506 // Allowing only blend modes that are defined in the CSS Compositing standard: |
| 507 // http://dev.w3.org/fxtf/compositing-1/#blending | 507 // http://dev.w3.org/fxtf/compositing-1/#blending |
| 508 switch (blend_mode) { | 508 switch (blend_mode) { |
| 509 case SkXfermode::kSrcOver_Mode: | 509 case SkBlendMode::kSrcOver: |
| 510 case SkXfermode::kScreen_Mode: | 510 case SkBlendMode::kScreen: |
| 511 case SkXfermode::kOverlay_Mode: | 511 case SkBlendMode::kOverlay: |
| 512 case SkXfermode::kDarken_Mode: | 512 case SkBlendMode::kDarken: |
| 513 case SkXfermode::kLighten_Mode: | 513 case SkBlendMode::kLighten: |
| 514 case SkXfermode::kColorDodge_Mode: | 514 case SkBlendMode::kColorDodge: |
| 515 case SkXfermode::kColorBurn_Mode: | 515 case SkBlendMode::kColorBurn: |
| 516 case SkXfermode::kHardLight_Mode: | 516 case SkBlendMode::kHardLight: |
| 517 case SkXfermode::kSoftLight_Mode: | 517 case SkBlendMode::kSoftLight: |
| 518 case SkXfermode::kDifference_Mode: | 518 case SkBlendMode::kDifference: |
| 519 case SkXfermode::kExclusion_Mode: | 519 case SkBlendMode::kExclusion: |
| 520 case SkXfermode::kMultiply_Mode: | 520 case SkBlendMode::kMultiply: |
| 521 case SkXfermode::kHue_Mode: | 521 case SkBlendMode::kHue: |
| 522 case SkXfermode::kSaturation_Mode: | 522 case SkBlendMode::kSaturation: |
| 523 case SkXfermode::kColor_Mode: | 523 case SkBlendMode::kColor: |
| 524 case SkXfermode::kLuminosity_Mode: | 524 case SkBlendMode::kLuminosity: |
| 525 // supported blend modes | 525 // supported blend modes |
| 526 break; | 526 break; |
| 527 case SkXfermode::kClear_Mode: | 527 case SkBlendMode::kClear: |
| 528 case SkXfermode::kSrc_Mode: | 528 case SkBlendMode::kSrc: |
| 529 case SkXfermode::kDst_Mode: | 529 case SkBlendMode::kDst: |
| 530 case SkXfermode::kDstOver_Mode: | 530 case SkBlendMode::kDstOver: |
| 531 case SkXfermode::kSrcIn_Mode: | 531 case SkBlendMode::kSrcIn: |
| 532 case SkXfermode::kDstIn_Mode: | 532 case SkBlendMode::kDstIn: |
| 533 case SkXfermode::kSrcOut_Mode: | 533 case SkBlendMode::kSrcOut: |
| 534 case SkXfermode::kDstOut_Mode: | 534 case SkBlendMode::kDstOut: |
| 535 case SkXfermode::kSrcATop_Mode: | 535 case SkBlendMode::kSrcATop: |
| 536 case SkXfermode::kDstATop_Mode: | 536 case SkBlendMode::kDstATop: |
| 537 case SkXfermode::kXor_Mode: | 537 case SkBlendMode::kXor: |
| 538 case SkXfermode::kPlus_Mode: | 538 case SkBlendMode::kPlus: |
| 539 case SkXfermode::kModulate_Mode: | 539 case SkBlendMode::kModulate: |
| 540 // Porter Duff Compositing Operators are not yet supported | 540 // Porter Duff Compositing Operators are not yet supported |
| 541 // http://dev.w3.org/fxtf/compositing-1/#porterduffcompositingoperators | 541 // http://dev.w3.org/fxtf/compositing-1/#porterduffcompositingoperators |
| 542 NOTREACHED(); | 542 NOTREACHED(); |
| 543 return; | 543 return; |
| 544 } | 544 } |
| 545 | 545 |
| 546 inputs_.blend_mode = blend_mode; | 546 inputs_.blend_mode = blend_mode; |
| 547 SetNeedsCommit(); | 547 SetNeedsCommit(); |
| 548 SetSubtreePropertyChanged(); | 548 SetSubtreePropertyChanged(); |
| 549 } | 549 } |
| (...skipping 1114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1664 | 1664 |
| 1665 LayerTree* Layer::GetLayerTree() const { | 1665 LayerTree* Layer::GetLayerTree() const { |
| 1666 return layer_tree_; | 1666 return layer_tree_; |
| 1667 } | 1667 } |
| 1668 | 1668 |
| 1669 void Layer::SetLayerIdForTesting(int id) { | 1669 void Layer::SetLayerIdForTesting(int id) { |
| 1670 inputs_.layer_id = id; | 1670 inputs_.layer_id = id; |
| 1671 } | 1671 } |
| 1672 | 1672 |
| 1673 } // namespace cc | 1673 } // namespace cc |
| OLD | NEW |