OLD | NEW |
---|---|
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 "base/stringprintf.h" | 9 #include "base/stringprintf.h" |
10 #include "CCDebugBorderDrawQuad.h" | 10 #include "CCDebugBorderDrawQuad.h" |
11 #include "CCLayerSorter.h" | 11 #include "CCLayerSorter.h" |
12 #include "CCMathUtil.h" | 12 #include "CCMathUtil.h" |
13 #include "CCProxy.h" | 13 #include "CCProxy.h" |
14 #include "CCQuadSink.h" | 14 #include "CCQuadSink.h" |
15 #include "CCScrollbarAnimationController.h" | 15 #include "CCScrollbarAnimationController.h" |
16 #include "CCSettings.h" | 16 #include "CCSettings.h" |
17 #include "TraceEvent.h" | 17 #include "TraceEvent.h" |
18 #include "cc/dcheck.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 19 matching lines...) Expand all Loading... | |
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) |
55 , m_drawTransformIsAnimating(false) | 56 , m_drawTransformIsAnimating(false) |
56 , m_screenSpaceTransformIsAnimating(false) | 57 , m_screenSpaceTransformIsAnimating(false) |
57 #ifndef NDEBUG | 58 #if CC_DCHECK_ENABLED() |
slavi
2012/10/16 20:31:46
Keep this as #ifndef NDEBUG?
| |
58 , m_betweenWillDrawAndDidDraw(false) | 59 , m_betweenWillDrawAndDidDraw(false) |
59 #endif | 60 #endif |
60 , m_layerAnimationController(CCLayerAnimationController::create(this)) | 61 , m_layerAnimationController(CCLayerAnimationController::create(this)) |
61 { | 62 { |
62 ASSERT(CCProxy::isImplThread()); | 63 DCHECK(CCProxy::isImplThread()); |
63 ASSERT(m_layerId > 0); | 64 DCHECK(m_layerId > 0); |
64 } | 65 } |
65 | 66 |
66 CCLayerImpl::~CCLayerImpl() | 67 CCLayerImpl::~CCLayerImpl() |
67 { | 68 { |
68 ASSERT(CCProxy::isImplThread()); | 69 DCHECK(CCProxy::isImplThread()); |
69 #ifndef NDEBUG | 70 DCHECK(!m_betweenWillDrawAndDidDraw); |
slavi
2012/10/16 20:31:46
Keep this #ifndef NDEBUG?
| |
70 ASSERT(!m_betweenWillDrawAndDidDraw); | |
71 #endif | |
72 } | 71 } |
73 | 72 |
74 void CCLayerImpl::addChild(scoped_ptr<CCLayerImpl> child) | 73 void CCLayerImpl::addChild(scoped_ptr<CCLayerImpl> child) |
75 { | 74 { |
76 child->setParent(this); | 75 child->setParent(this); |
77 m_children.append(child.Pass()); | 76 m_children.append(child.Pass()); |
78 } | 77 } |
79 | 78 |
80 void CCLayerImpl::removeFromParent() | 79 void CCLayerImpl::removeFromParent() |
81 { | 80 { |
(...skipping 17 matching lines...) Expand all Loading... | |
99 m_children[0]->removeFromParent(); | 98 m_children[0]->removeFromParent(); |
100 } | 99 } |
101 | 100 |
102 void CCLayerImpl::clearChildList() | 101 void CCLayerImpl::clearChildList() |
103 { | 102 { |
104 m_children.clear(); | 103 m_children.clear(); |
105 } | 104 } |
106 | 105 |
107 void CCLayerImpl::createRenderSurface() | 106 void CCLayerImpl::createRenderSurface() |
108 { | 107 { |
109 ASSERT(!m_renderSurface); | 108 DCHECK(!m_renderSurface); |
110 m_renderSurface = make_scoped_ptr(new CCRenderSurface(this)); | 109 m_renderSurface = make_scoped_ptr(new CCRenderSurface(this)); |
111 setRenderTarget(this); | 110 setRenderTarget(this); |
112 } | 111 } |
113 | 112 |
114 bool CCLayerImpl::descendantDrawsContent() | 113 bool CCLayerImpl::descendantDrawsContent() |
115 { | 114 { |
116 for (size_t i = 0; i < m_children.size(); ++i) { | 115 for (size_t i = 0; i < m_children.size(); ++i) { |
117 if (m_children[i]->drawsContent() || m_children[i]->descendantDrawsConte nt()) | 116 if (m_children[i]->drawsContent() || m_children[i]->descendantDrawsConte nt()) |
118 return true; | 117 return true; |
119 } | 118 } |
120 return false; | 119 return false; |
121 } | 120 } |
122 | 121 |
123 scoped_ptr<CCSharedQuadState> CCLayerImpl::createSharedQuadState() const | 122 scoped_ptr<CCSharedQuadState> CCLayerImpl::createSharedQuadState() const |
124 { | 123 { |
125 return CCSharedQuadState::create(m_drawTransform, m_visibleContentRect, m_dr awableContentRect, m_drawOpacity, m_contentsOpaque); | 124 return CCSharedQuadState::create(m_drawTransform, m_visibleContentRect, m_dr awableContentRect, m_drawOpacity, m_contentsOpaque); |
126 } | 125 } |
127 | 126 |
128 void CCLayerImpl::willDraw(CCResourceProvider*) | 127 void CCLayerImpl::willDraw(CCResourceProvider*) |
129 { | 128 { |
130 #ifndef NDEBUG | 129 #if CC_DCHECK_ENABLED() |
slavi
2012/10/16 20:31:46
Keep this as #ifndef NDEBUG?
| |
131 // willDraw/didDraw must be matched. | 130 // willDraw/didDraw must be matched. |
132 ASSERT(!m_betweenWillDrawAndDidDraw); | 131 DCHECK(!m_betweenWillDrawAndDidDraw); |
133 m_betweenWillDrawAndDidDraw = true; | 132 m_betweenWillDrawAndDidDraw = true; |
134 #endif | 133 #endif |
135 } | 134 } |
136 | 135 |
137 void CCLayerImpl::didDraw(CCResourceProvider*) | 136 void CCLayerImpl::didDraw(CCResourceProvider*) |
138 { | 137 { |
139 #ifndef NDEBUG | 138 #if CC_DCHECK_ENABLED() |
slavi
2012/10/16 20:31:46
Keep this as #ifndef NDEBUG?
| |
140 ASSERT(m_betweenWillDrawAndDidDraw); | 139 DCHECK(m_betweenWillDrawAndDidDraw); |
141 m_betweenWillDrawAndDidDraw = false; | 140 m_betweenWillDrawAndDidDraw = false; |
142 #endif | 141 #endif |
143 } | 142 } |
144 | 143 |
145 void CCLayerImpl::appendDebugBorderQuad(CCQuadSink& quadList, const CCSharedQuad State* sharedQuadState, CCAppendQuadsData& appendQuadsData) const | 144 void CCLayerImpl::appendDebugBorderQuad(CCQuadSink& quadList, const CCSharedQuad State* sharedQuadState, CCAppendQuadsData& appendQuadsData) const |
146 { | 145 { |
147 if (!hasDebugBorders()) | 146 if (!hasDebugBorders()) |
148 return; | 147 return; |
149 | 148 |
150 IntRect contentRect(IntPoint(), contentBounds()); | 149 IntRect contentRect(IntPoint(), contentBounds()); |
(...skipping 10 matching lines...) Expand all Loading... | |
161 return CCRenderPass::Id(0, 0); | 160 return CCRenderPass::Id(0, 0); |
162 } | 161 } |
163 | 162 |
164 CCRenderPass::Id CCLayerImpl::nextContributingRenderPassId(CCRenderPass::Id) con st | 163 CCRenderPass::Id CCLayerImpl::nextContributingRenderPassId(CCRenderPass::Id) con st |
165 { | 164 { |
166 return CCRenderPass::Id(0, 0); | 165 return CCRenderPass::Id(0, 0); |
167 } | 166 } |
168 | 167 |
169 CCResourceProvider::ResourceId CCLayerImpl::contentsResourceId() const | 168 CCResourceProvider::ResourceId CCLayerImpl::contentsResourceId() const |
170 { | 169 { |
171 ASSERT_NOT_REACHED(); | 170 NOTREACHED(); |
172 return 0; | 171 return 0; |
173 } | 172 } |
174 | 173 |
175 FloatSize CCLayerImpl::scrollBy(const FloatSize& scroll) | 174 FloatSize CCLayerImpl::scrollBy(const FloatSize& scroll) |
176 { | 175 { |
177 IntSize minDelta = -toSize(m_scrollPosition); | 176 IntSize minDelta = -toSize(m_scrollPosition); |
178 IntSize maxDelta = m_maxScrollPosition - toSize(m_scrollPosition); | 177 IntSize maxDelta = m_maxScrollPosition - toSize(m_scrollPosition); |
179 // Clamp newDelta so that position + delta stays within scroll bounds. | 178 // Clamp newDelta so that position + delta stays within scroll bounds. |
180 FloatSize newDelta = (m_scrollDelta + scroll).expandedTo(minDelta).shrunkTo( maxDelta); | 179 FloatSize newDelta = (m_scrollDelta + scroll).expandedTo(minDelta).shrunkTo( maxDelta); |
181 FloatSize unscrolled = m_scrollDelta + scroll - newDelta; | 180 FloatSize unscrolled = m_scrollDelta + scroll - newDelta; |
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
671 | 670 |
672 void CCLayerImpl::setVerticalScrollbarLayer(CCScrollbarLayerImpl* scrollbarLayer ) | 671 void CCLayerImpl::setVerticalScrollbarLayer(CCScrollbarLayerImpl* scrollbarLayer ) |
673 { | 672 { |
674 if (!m_scrollbarAnimationController) | 673 if (!m_scrollbarAnimationController) |
675 m_scrollbarAnimationController = CCScrollbarAnimationController::create( this); | 674 m_scrollbarAnimationController = CCScrollbarAnimationController::create( this); |
676 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); | 675 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); |
677 m_scrollbarAnimationController->updateScrollOffset(this); | 676 m_scrollbarAnimationController->updateScrollOffset(this); |
678 } | 677 } |
679 | 678 |
680 } | 679 } |
OLD | NEW |