Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(82)

Side by Side Diff: cc/layers/layer.cc

Issue 2502373003: stop using SkXfermode -- use SkBlendMode instead (Closed)
Patch Set: rebase Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/layers/layer.h ('k') | cc/layers/layer_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
OLDNEW
« no previous file with comments | « cc/layers/layer.h ('k') | cc/layers/layer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698