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

Side by Side Diff: Source/core/rendering/compositing/CompositingReasonFinder.cpp

Issue 309593003: Inline some trivial functions in CompositingReasonFinder (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 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
« no previous file with comments | « Source/core/rendering/compositing/CompositingReasonFinder.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "core/rendering/compositing/CompositingReasonFinder.h" 6 #include "core/rendering/compositing/CompositingReasonFinder.h"
7 7
8 #include "CSSPropertyNames.h" 8 #include "CSSPropertyNames.h"
9 #include "HTMLNames.h" 9 #include "HTMLNames.h"
10 #include "core/frame/FrameView.h" 10 #include "core/frame/FrameView.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 return false; 93 return false;
94 94
95 FrameView* frameView = m_renderView.frameView(); 95 FrameView* frameView = m_renderView.frameView();
96 return frameView->isScrollable(); 96 return frameView->isScrollable();
97 } 97 }
98 98
99 CompositingReasons CompositingReasonFinder::styleDeterminedReasons(RenderObject* renderer) const 99 CompositingReasons CompositingReasonFinder::styleDeterminedReasons(RenderObject* renderer) const
100 { 100 {
101 CompositingReasons directReasons = CompositingReasonNone; 101 CompositingReasons directReasons = CompositingReasonNone;
102 102
103 RenderStyle* style = renderer->style();
104
103 if (requiresCompositingForTransform(renderer)) 105 if (requiresCompositingForTransform(renderer))
104 directReasons |= CompositingReason3DTransform; 106 directReasons |= CompositingReason3DTransform;
105 107
106 if (requiresCompositingForBackfaceVisibilityHidden(renderer))
107 directReasons |= CompositingReasonBackfaceVisibilityHidden;
108
109 if (requiresCompositingForAnimation(renderer))
110 directReasons |= CompositingReasonActiveAnimation;
111
112 if (requiresCompositingForFilters(renderer)) 108 if (requiresCompositingForFilters(renderer))
113 directReasons |= CompositingReasonFilters; 109 directReasons |= CompositingReasonFilters;
114 110
115 if (requiresCompositingForWillChangeCompositingHint(renderer)) 111 if (style->backfaceVisibility() == BackfaceVisibilityHidden)
112 directReasons |= CompositingReasonBackfaceVisibilityHidden;
113
114 if (style->shouldCompositeForCurrentAnimations())
115 directReasons |= CompositingReasonActiveAnimation;
116
117 if (style->hasWillChangeCompositingHint())
116 directReasons |= CompositingReasonWillChangeCompositingHint; 118 directReasons |= CompositingReasonWillChangeCompositingHint;
117 119
118 ASSERT(!(directReasons & ~CompositingReasonComboAllStyleDeterminedReasons)); 120 ASSERT(!(directReasons & ~CompositingReasonComboAllStyleDeterminedReasons));
119 return directReasons; 121 return directReasons;
120 } 122 }
121 123
122 bool CompositingReasonFinder::requiresCompositingForTransform(RenderObject* rend erer) const 124 bool CompositingReasonFinder::requiresCompositingForTransform(RenderObject* rend erer) const
123 { 125 {
124 // Note that we ask the renderer if it has a transform, because the style ma y have transforms, 126 // Note that we ask the renderer if it has a transform, because the style ma y have transforms,
125 // but the renderer may be an inline that doesn't suppport them. 127 // but the renderer may be an inline that doesn't suppport them.
126 return renderer->hasTransform() && renderer->style()->transform().has3DOpera tion(); 128 return renderer->hasTransform() && renderer->style()->transform().has3DOpera tion();
127 } 129 }
128 130
129 bool CompositingReasonFinder::requiresCompositingForBackfaceVisibilityHidden(Ren derObject* renderer) const
130 {
131 return renderer->style()->backfaceVisibility() == BackfaceVisibilityHidden;
132 }
133
134 bool CompositingReasonFinder::requiresCompositingForFilters(RenderObject* render er) const 131 bool CompositingReasonFinder::requiresCompositingForFilters(RenderObject* render er) const
135 { 132 {
136 if (!(m_compositingTriggers & FilterTrigger)) 133 if (!(m_compositingTriggers & FilterTrigger))
137 return false; 134 return false;
138 135
139 return renderer->hasFilter(); 136 return renderer->hasFilter();
140 } 137 }
141 138
142 bool CompositingReasonFinder::requiresCompositingForWillChangeCompositingHint(co nst RenderObject* renderer) const
143 {
144 return renderer->style()->hasWillChangeCompositingHint();
145 }
146
147 CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(cons t RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const 139 CompositingReasons CompositingReasonFinder::nonStyleDeterminedDirectReasons(cons t RenderLayer* layer, bool* needToRecomputeCompositingRequirements) const
148 { 140 {
149 CompositingReasons directReasons = CompositingReasonNone; 141 CompositingReasons directReasons = CompositingReasonNone;
150 RenderObject* renderer = layer->renderer(); 142 RenderObject* renderer = layer->renderer();
151 143
152 if (hasOverflowScrollTrigger()) { 144 if (hasOverflowScrollTrigger()) {
153 if (requiresCompositingForOutOfFlowClipping(layer)) 145 if (layer->isUnclippedDescendant())
154 directReasons |= CompositingReasonOutOfFlowClipping; 146 directReasons |= CompositingReasonOutOfFlowClipping;
155 147
156 if (requiresCompositingForOverflowScrollingParent(layer)) 148 if (layer->scrollParent())
157 directReasons |= CompositingReasonOverflowScrollingParent; 149 directReasons |= CompositingReasonOverflowScrollingParent;
150
151 if (layer->needsCompositedScrolling())
152 directReasons |= CompositingReasonOverflowScrollingTouch;
158 } 153 }
159 154
160 if (requiresCompositingForOverflowScrolling(layer))
161 directReasons |= CompositingReasonOverflowScrollingTouch;
162
163 if (requiresCompositingForPositionSticky(renderer, layer)) 155 if (requiresCompositingForPositionSticky(renderer, layer))
164 directReasons |= CompositingReasonPositionSticky; 156 directReasons |= CompositingReasonPositionSticky;
165 157
166 if (requiresCompositingForPositionFixed(renderer, layer, 0, needToRecomputeC ompositingRequirements)) 158 if (requiresCompositingForPositionFixed(renderer, layer, 0, needToRecomputeC ompositingRequirements))
167 directReasons |= CompositingReasonPositionFixed; 159 directReasons |= CompositingReasonPositionFixed;
168 160
169 directReasons |= renderer->additionalCompositingReasons(m_compositingTrigger s); 161 directReasons |= renderer->additionalCompositingReasons(m_compositingTrigger s);
170 162
171 ASSERT(!(directReasons & CompositingReasonComboAllStyleDeterminedReasons)); 163 ASSERT(!(directReasons & CompositingReasonComboAllStyleDeterminedReasons));
172 return directReasons; 164 return directReasons;
173 } 165 }
174 166
175 bool CompositingReasonFinder::requiresCompositingForAnimation(RenderObject* rend erer) const
176 {
177 return renderer->style()->shouldCompositeForCurrentAnimations();
178 }
179
180 bool CompositingReasonFinder::requiresCompositingForOutOfFlowClipping(const Rend erLayer* layer) const
181 {
182 return layer->isUnclippedDescendant();
183 }
184
185 bool CompositingReasonFinder::requiresCompositingForOverflowScrollingParent(cons t RenderLayer* layer) const
186 {
187 if (!hasOverflowScrollTrigger())
188 return false;
189 return layer->scrollParent();
190 }
191
192 bool CompositingReasonFinder::requiresCompositingForOverflowScrolling(const Rend erLayer* layer) const
193 {
194 return layer->needsCompositedScrolling();
195 }
196
197 bool CompositingReasonFinder::requiresCompositingForPosition(RenderObject* rende rer, const RenderLayer* layer, RenderLayer::ViewportConstrainedNotCompositedReas on* viewportConstrainedNotCompositedReason, bool* needToRecomputeCompositingRequ irements) const 167 bool CompositingReasonFinder::requiresCompositingForPosition(RenderObject* rende rer, const RenderLayer* layer, RenderLayer::ViewportConstrainedNotCompositedReas on* viewportConstrainedNotCompositedReason, bool* needToRecomputeCompositingRequ irements) const
198 { 168 {
199 return requiresCompositingForPositionSticky(renderer, layer) || requiresComp ositingForPositionFixed(renderer, layer, viewportConstrainedNotCompositedReason, needToRecomputeCompositingRequirements); 169 return requiresCompositingForPositionSticky(renderer, layer) || requiresComp ositingForPositionFixed(renderer, layer, viewportConstrainedNotCompositedReason, needToRecomputeCompositingRequirements);
200 } 170 }
201 171
202 bool CompositingReasonFinder::requiresCompositingForPositionSticky(RenderObject* renderer, const RenderLayer* layer) const 172 bool CompositingReasonFinder::requiresCompositingForPositionSticky(RenderObject* renderer, const RenderLayer* layer) const
203 { 173 {
204 if (!(m_compositingTriggers & ViewportConstrainedPositionedTrigger)) 174 if (!(m_compositingTriggers & ViewportConstrainedPositionedTrigger))
205 return false; 175 return false;
206 if (renderer->style()->position() != StickyPosition) 176 if (renderer->style()->position() != StickyPosition)
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 if (viewportConstrainedNotCompositedReason) 257 if (viewportConstrainedNotCompositedReason)
288 *viewportConstrainedNotCompositedReason = RenderLayer::NotCompos itedForBoundsOutOfView; 258 *viewportConstrainedNotCompositedReason = RenderLayer::NotCompos itedForBoundsOutOfView;
289 return false; 259 return false;
290 } 260 }
291 } 261 }
292 262
293 return true; 263 return true;
294 } 264 }
295 265
296 } 266 }
OLDNEW
« no previous file with comments | « Source/core/rendering/compositing/CompositingReasonFinder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698