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

Side by Side Diff: cc/layer_impl.cc

Issue 11175009: Implement SkImageFilter support in the compositor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updated to ToT Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
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 "config.h" 5 #include "config.h"
6 6
7 #include "CCLayerImpl.h" 7 #include "CCLayerImpl.h"
8 8
9 #include "CCDebugBorderDrawQuad.h" 9 #include "CCDebugBorderDrawQuad.h"
10 #include "CCLayerSorter.h" 10 #include "CCLayerSorter.h"
11 #include "base/debug/trace_event.h" 11 #include "base/debug/trace_event.h"
12 #include "base/stringprintf.h" 12 #include "base/stringprintf.h"
13 #include "cc/math_util.h" 13 #include "cc/math_util.h"
14 #include "cc/proxy.h" 14 #include "cc/proxy.h"
15 #include "cc/quad_sink.h" 15 #include "cc/quad_sink.h"
16 #include "cc/scrollbar_animation_controller.h" 16 #include "cc/scrollbar_animation_controller.h"
17 #include "cc/settings.h" 17 #include "cc/settings.h"
18 #include "SkImageFilter.h"
18 19
19 using WebKit::WebTransformationMatrix; 20 using WebKit::WebTransformationMatrix;
20 21
21 namespace cc { 22 namespace cc {
22 23
23 CCLayerImpl::CCLayerImpl(int id) 24 CCLayerImpl::CCLayerImpl(int id)
24 : m_parent(0) 25 : m_parent(0)
25 , m_maskLayerId(-1) 26 , m_maskLayerId(-1)
26 , m_replicaLayerId(-1) 27 , m_replicaLayerId(-1)
27 , m_layerId(id) 28 , m_layerId(id)
(...skipping 17 matching lines...) Expand all
45 , m_drawsContent(false) 46 , m_drawsContent(false)
46 , m_forceRenderSurface(false) 47 , m_forceRenderSurface(false)
47 , m_isContainerForFixedPositionLayers(false) 48 , m_isContainerForFixedPositionLayers(false)
48 , m_fixedToContainerLayer(false) 49 , m_fixedToContainerLayer(false)
49 , m_renderTarget(0) 50 , m_renderTarget(0)
50 , m_drawDepth(0) 51 , m_drawDepth(0)
51 , m_drawOpacity(0) 52 , m_drawOpacity(0)
52 , m_drawOpacityIsAnimating(false) 53 , m_drawOpacityIsAnimating(false)
53 , m_debugBorderColor(0) 54 , m_debugBorderColor(0)
54 , m_debugBorderWidth(0) 55 , m_debugBorderWidth(0)
56 , m_filter(0)
55 , m_drawTransformIsAnimating(false) 57 , m_drawTransformIsAnimating(false)
56 , m_screenSpaceTransformIsAnimating(false) 58 , m_screenSpaceTransformIsAnimating(false)
57 #ifndef NDEBUG 59 #ifndef NDEBUG
58 , m_betweenWillDrawAndDidDraw(false) 60 , m_betweenWillDrawAndDidDraw(false)
59 #endif 61 #endif
60 , m_layerAnimationController(CCLayerAnimationController::create(this)) 62 , m_layerAnimationController(CCLayerAnimationController::create(this))
61 { 63 {
62 DCHECK(CCProxy::isImplThread()); 64 DCHECK(CCProxy::isImplThread());
63 DCHECK(m_layerId > 0); 65 DCHECK(m_layerId > 0);
64 } 66 }
65 67
66 CCLayerImpl::~CCLayerImpl() 68 CCLayerImpl::~CCLayerImpl()
67 { 69 {
68 DCHECK(CCProxy::isImplThread()); 70 DCHECK(CCProxy::isImplThread());
69 #ifndef NDEBUG 71 #ifndef NDEBUG
70 DCHECK(!m_betweenWillDrawAndDidDraw); 72 DCHECK(!m_betweenWillDrawAndDidDraw);
71 #endif 73 #endif
74 SkSafeUnref(m_filter);
72 } 75 }
73 76
74 void CCLayerImpl::addChild(scoped_ptr<CCLayerImpl> child) 77 void CCLayerImpl::addChild(scoped_ptr<CCLayerImpl> child)
75 { 78 {
76 child->setParent(this); 79 child->setParent(this);
77 m_children.append(child.Pass()); 80 m_children.append(child.Pass());
78 } 81 }
79 82
80 void CCLayerImpl::removeFromParent() 83 void CCLayerImpl::removeFromParent()
81 { 84 {
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 485
483 void CCLayerImpl::setBackgroundFilters(const WebKit::WebFilterOperations& backgr oundFilters) 486 void CCLayerImpl::setBackgroundFilters(const WebKit::WebFilterOperations& backgr oundFilters)
484 { 487 {
485 if (m_backgroundFilters == backgroundFilters) 488 if (m_backgroundFilters == backgroundFilters)
486 return; 489 return;
487 490
488 m_backgroundFilters = backgroundFilters; 491 m_backgroundFilters = backgroundFilters;
489 m_layerPropertyChanged = true; 492 m_layerPropertyChanged = true;
490 } 493 }
491 494
495 void CCLayerImpl::setFilter(SkImageFilter* filter)
496 {
497 if (m_filter == filter)
498 return;
499
500 SkRefCnt_SafeAssign(m_filter, filter);
501 noteLayerPropertyChangedForSubtree();
502 }
503
492 void CCLayerImpl::setMasksToBounds(bool masksToBounds) 504 void CCLayerImpl::setMasksToBounds(bool masksToBounds)
493 { 505 {
494 if (m_masksToBounds == masksToBounds) 506 if (m_masksToBounds == masksToBounds)
495 return; 507 return;
496 508
497 m_masksToBounds = masksToBounds; 509 m_masksToBounds = masksToBounds;
498 noteLayerPropertyChangedForSubtree(); 510 noteLayerPropertyChangedForSubtree();
499 } 511 }
500 512
501 void CCLayerImpl::setContentsOpaque(bool opaque) 513 void CCLayerImpl::setContentsOpaque(bool opaque)
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
671 683
672 void CCLayerImpl::setVerticalScrollbarLayer(CCScrollbarLayerImpl* scrollbarLayer ) 684 void CCLayerImpl::setVerticalScrollbarLayer(CCScrollbarLayerImpl* scrollbarLayer )
673 { 685 {
674 if (!m_scrollbarAnimationController) 686 if (!m_scrollbarAnimationController)
675 m_scrollbarAnimationController = CCScrollbarAnimationController::create( this); 687 m_scrollbarAnimationController = CCScrollbarAnimationController::create( this);
676 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); 688 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer);
677 m_scrollbarAnimationController->updateScrollOffset(this); 689 m_scrollbarAnimationController->updateScrollOffset(this);
678 } 690 }
679 691
680 } 692 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698