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

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

Issue 2659023003: [cc] Add SkBlendMode::kDstIn support to cc::Layer (Closed)
Patch Set: Created 3 years, 10 months 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 | « no previous file | cc/layers/render_surface_impl.cc » ('j') | cc/layers/render_surface_impl.cc » ('J')
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 483 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 494
495 bool Layer::AlwaysUseActiveTreeOpacity() const { 495 bool Layer::AlwaysUseActiveTreeOpacity() const {
496 return false; 496 return false;
497 } 497 }
498 498
499 void Layer::SetBlendMode(SkBlendMode blend_mode) { 499 void Layer::SetBlendMode(SkBlendMode blend_mode) {
500 DCHECK(IsPropertyChangeAllowed()); 500 DCHECK(IsPropertyChangeAllowed());
501 if (inputs_.blend_mode == blend_mode) 501 if (inputs_.blend_mode == blend_mode)
502 return; 502 return;
503 503
504 // Allowing only blend modes that are defined in the CSS Compositing standard: 504 // Allowing only blend modes that are defined in the CSS Compositing standard,
505 // plus destination-in which is used to implement masks.
505 // http://dev.w3.org/fxtf/compositing-1/#blending 506 // http://dev.w3.org/fxtf/compositing-1/#blending
506 switch (blend_mode) { 507 switch (blend_mode) {
507 case SkBlendMode::kSrcOver: 508 case SkBlendMode::kSrcOver:
509 case SkBlendMode::kDstIn:
508 case SkBlendMode::kScreen: 510 case SkBlendMode::kScreen:
509 case SkBlendMode::kOverlay: 511 case SkBlendMode::kOverlay:
510 case SkBlendMode::kDarken: 512 case SkBlendMode::kDarken:
511 case SkBlendMode::kLighten: 513 case SkBlendMode::kLighten:
512 case SkBlendMode::kColorDodge: 514 case SkBlendMode::kColorDodge:
513 case SkBlendMode::kColorBurn: 515 case SkBlendMode::kColorBurn:
514 case SkBlendMode::kHardLight: 516 case SkBlendMode::kHardLight:
515 case SkBlendMode::kSoftLight: 517 case SkBlendMode::kSoftLight:
516 case SkBlendMode::kDifference: 518 case SkBlendMode::kDifference:
517 case SkBlendMode::kExclusion: 519 case SkBlendMode::kExclusion:
518 case SkBlendMode::kMultiply: 520 case SkBlendMode::kMultiply:
519 case SkBlendMode::kHue: 521 case SkBlendMode::kHue:
520 case SkBlendMode::kSaturation: 522 case SkBlendMode::kSaturation:
521 case SkBlendMode::kColor: 523 case SkBlendMode::kColor:
522 case SkBlendMode::kLuminosity: 524 case SkBlendMode::kLuminosity:
523 // supported blend modes 525 // supported blend modes
524 break; 526 break;
525 case SkBlendMode::kClear: 527 case SkBlendMode::kClear:
526 case SkBlendMode::kSrc: 528 case SkBlendMode::kSrc:
527 case SkBlendMode::kDst: 529 case SkBlendMode::kDst:
528 case SkBlendMode::kDstOver: 530 case SkBlendMode::kDstOver:
529 case SkBlendMode::kSrcIn: 531 case SkBlendMode::kSrcIn:
530 case SkBlendMode::kDstIn:
531 case SkBlendMode::kSrcOut: 532 case SkBlendMode::kSrcOut:
532 case SkBlendMode::kDstOut: 533 case SkBlendMode::kDstOut:
533 case SkBlendMode::kSrcATop: 534 case SkBlendMode::kSrcATop:
534 case SkBlendMode::kDstATop: 535 case SkBlendMode::kDstATop:
535 case SkBlendMode::kXor: 536 case SkBlendMode::kXor:
536 case SkBlendMode::kPlus: 537 case SkBlendMode::kPlus:
537 case SkBlendMode::kModulate: 538 case SkBlendMode::kModulate:
538 // Porter Duff Compositing Operators are not yet supported 539 // Porter Duff Compositing Operators are not yet supported
539 // http://dev.w3.org/fxtf/compositing-1/#porterduffcompositingoperators 540 // http://dev.w3.org/fxtf/compositing-1/#porterduffcompositingoperators
540 NOTREACHED(); 541 NOTREACHED();
(...skipping 1037 matching lines...) Expand 10 before | Expand all | Expand 10 after
1578 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId); 1579 DCHECK_NE(transform_tree_index_, TransformTree::kInvalidNodeId);
1579 return draw_property_utils::ScreenSpaceTransform( 1580 return draw_property_utils::ScreenSpaceTransform(
1580 this, layer_tree_->property_trees()->transform_tree); 1581 this, layer_tree_->property_trees()->transform_tree);
1581 } 1582 }
1582 1583
1583 LayerTree* Layer::GetLayerTree() const { 1584 LayerTree* Layer::GetLayerTree() const {
1584 return layer_tree_; 1585 return layer_tree_;
1585 } 1586 }
1586 1587
1587 } // namespace cc 1588 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/layers/render_surface_impl.cc » ('j') | cc/layers/render_surface_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698