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

Side by Side Diff: Source/platform/scroll/ScrollAnimatorNone.cpp

Issue 512293003: Removing "using" declarations that import names in the C++ Standard library.(Source/platform/[m* - … (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 3 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 | « Source/platform/scroll/ScrollAnimator.cpp ('k') | Source/platform/scroll/ScrollView.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2011, Google Inc. All rights reserved. 2 * Copyright (c) 2011, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 21 matching lines...) Expand all
32 32
33 #include "platform/scroll/ScrollAnimatorNone.h" 33 #include "platform/scroll/ScrollAnimatorNone.h"
34 34
35 #include <algorithm> 35 #include <algorithm>
36 #include "platform/scroll/ScrollableArea.h" 36 #include "platform/scroll/ScrollableArea.h"
37 #include "wtf/CurrentTime.h" 37 #include "wtf/CurrentTime.h"
38 #include "wtf/PassOwnPtr.h" 38 #include "wtf/PassOwnPtr.h"
39 39
40 #include "platform/TraceEvent.h" 40 #include "platform/TraceEvent.h"
41 41
42 using namespace std;
43
44 namespace blink { 42 namespace blink {
45 43
46 const double kFrameRate = 60; 44 const double kFrameRate = 60;
47 const double kTickTime = 1 / kFrameRate; 45 const double kTickTime = 1 / kFrameRate;
48 const double kMinimumTimerInterval = .001; 46 const double kMinimumTimerInterval = .001;
49 47
50 PassOwnPtr<ScrollAnimator> ScrollAnimator::create(ScrollableArea* scrollableArea ) 48 PassOwnPtr<ScrollAnimator> ScrollAnimator::create(ScrollableArea* scrollableArea )
51 { 49 {
52 if (scrollableArea && scrollableArea->scrollAnimatorEnabled()) 50 if (scrollableArea && scrollableArea->scrollAnimatorEnabled())
53 return adoptPtr(new ScrollAnimatorNone(scrollableArea)); 51 return adoptPtr(new ScrollAnimatorNone(scrollableArea));
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 return t * t * t / 3; 137 return t * t * t / 3;
140 case Cubic: 138 case Cubic:
141 return t * t * t * t / 4; 139 return t * t * t * t / 4;
142 case Quartic: 140 case Quartic:
143 return t * t * t * t * t / 5; 141 return t * t * t * t * t / 5;
144 case Bounce: 142 case Bounce:
145 const double kTimeBase = 2.75; 143 const double kTimeBase = 2.75;
146 const double kTimeBaseSquared = kTimeBase * kTimeBase; 144 const double kTimeBaseSquared = kTimeBase * kTimeBase;
147 const double kTimeBaseSquaredOverThree = kTimeBaseSquared / 3; 145 const double kTimeBaseSquaredOverThree = kTimeBaseSquared / 3;
148 double area; 146 double area;
149 double t1 = min(t, 1 / kTimeBase); 147 double t1 = std::min(t, 1 / kTimeBase);
150 area = kTimeBaseSquaredOverThree * t1 * t1 * t1; 148 area = kTimeBaseSquaredOverThree * t1 * t1 * t1;
151 if (t < 1 / kTimeBase) 149 if (t < 1 / kTimeBase)
152 return area; 150 return area;
153 151
154 t1 = min(t - 1 / kTimeBase, 1 / kTimeBase); 152 t1 = std::min(t - 1 / kTimeBase, 1 / kTimeBase);
155 // The integral of kTimeBaseSquared * (t1 - .5 / kTimeBase) * (t1 - .5 / kTimeBase) + kParabolaAtEdge 153 // The integral of kTimeBaseSquared * (t1 - .5 / kTimeBase) * (t1 - .5 / kTimeBase) + kParabolaAtEdge
156 const double kSecondInnerOffset = kTimeBaseSquared * .5 / kTimeBase; 154 const double kSecondInnerOffset = kTimeBaseSquared * .5 / kTimeBase;
157 double bounceArea = t1 * (t1 * (kTimeBaseSquaredOverThree * t1 - kSecond InnerOffset) + 1); 155 double bounceArea = t1 * (t1 * (kTimeBaseSquaredOverThree * t1 - kSecond InnerOffset) + 1);
158 area += bounceArea; 156 area += bounceArea;
159 if (t < 2 / kTimeBase) 157 if (t < 2 / kTimeBase)
160 return area; 158 return area;
161 159
162 t1 = min(t - 2 / kTimeBase, 0.5 / kTimeBase); 160 t1 = std::min(t - 2 / kTimeBase, 0.5 / kTimeBase);
163 // The integral of kTimeBaseSquared * (t1 - .25 / kTimeBase) * (t1 - .25 / kTimeBase) + kParabolaAtEdge 161 // The integral of kTimeBaseSquared * (t1 - .25 / kTimeBase) * (t1 - .25 / kTimeBase) + kParabolaAtEdge
164 const double kThirdInnerOffset = kTimeBaseSquared * .25 / kTimeBase; 162 const double kThirdInnerOffset = kTimeBaseSquared * .25 / kTimeBase;
165 bounceArea = t1 * (t1 * (kTimeBaseSquaredOverThree * t1 - kThirdInnerOf fset) + 1); 163 bounceArea = t1 * (t1 * (kTimeBaseSquaredOverThree * t1 - kThirdInnerOf fset) + 1);
166 area += bounceArea; 164 area += bounceArea;
167 if (t < 2.5 / kTimeBase) 165 if (t < 2.5 / kTimeBase)
168 return area; 166 return area;
169 167
170 t1 = t - 2.5 / kTimeBase; 168 t1 = t - 2.5 / kTimeBase;
171 // The integral of kTimeBaseSquared * (t1 - .125 / kTimeBase) * (t1 - .1 25 / kTimeBase) + kParabolaAtEdge 169 // The integral of kTimeBaseSquared * (t1 - .125 / kTimeBase) * (t1 - .1 25 / kTimeBase) + kParabolaAtEdge
172 const double kFourthInnerOffset = kTimeBaseSquared * .125 / kTimeBase; 170 const double kFourthInnerOffset = kTimeBaseSquared * .125 / kTimeBase;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 bool ScrollAnimatorNone::PerAxisData::updateDataFromParameters(float step, float delta, float scrollableSize, double currentTime, Parameters* parameters) 224 bool ScrollAnimatorNone::PerAxisData::updateDataFromParameters(float step, float delta, float scrollableSize, double currentTime, Parameters* parameters)
227 { 225 {
228 float pixelDelta = step * delta; 226 float pixelDelta = step * delta;
229 if (!m_startTime || !pixelDelta || (pixelDelta < 0) != (m_desiredPosition - *m_currentPosition < 0)) { 227 if (!m_startTime || !pixelDelta || (pixelDelta < 0) != (m_desiredPosition - *m_currentPosition < 0)) {
230 m_desiredPosition = *m_currentPosition; 228 m_desiredPosition = *m_currentPosition;
231 m_startTime = 0; 229 m_startTime = 0;
232 } 230 }
233 float newPosition = m_desiredPosition + pixelDelta; 231 float newPosition = m_desiredPosition + pixelDelta;
234 232
235 if (newPosition < 0 || newPosition > scrollableSize) 233 if (newPosition < 0 || newPosition > scrollableSize)
236 newPosition = max(min(newPosition, scrollableSize), 0.0f); 234 newPosition = std::max(std::min(newPosition, scrollableSize), 0.0f);
237 235
238 if (newPosition == m_desiredPosition) 236 if (newPosition == m_desiredPosition)
239 return false; 237 return false;
240 238
241 m_desiredPosition = newPosition; 239 m_desiredPosition = newPosition;
242 240
243 if (!m_startTime) { 241 if (!m_startTime) {
244 m_attackTime = parameters->m_attackTime; 242 m_attackTime = parameters->m_attackTime;
245 m_attackCurve = parameters->m_attackCurve; 243 m_attackCurve = parameters->m_attackCurve;
246 } 244 }
(...skipping 14 matching lines...) Expand all
261 m_startPosition = *m_currentPosition; 259 m_startPosition = *m_currentPosition;
262 m_lastAnimationTime = m_startTime; 260 m_lastAnimationTime = m_startTime;
263 } 261 }
264 m_startVelocity = m_currentVelocity; 262 m_startVelocity = m_currentVelocity;
265 263
266 double remainingDelta = m_desiredPosition - *m_currentPosition; 264 double remainingDelta = m_desiredPosition - *m_currentPosition;
267 265
268 double attackAreaLeft = 0; 266 double attackAreaLeft = 0;
269 267
270 double deltaTime = m_lastAnimationTime - m_startTime; 268 double deltaTime = m_lastAnimationTime - m_startTime;
271 double attackTimeLeft = max(0., m_attackTime - deltaTime); 269 double attackTimeLeft = std::max(0., m_attackTime - deltaTime);
272 double timeLeft = m_animationTime - deltaTime; 270 double timeLeft = m_animationTime - deltaTime;
273 double minTimeLeft = m_releaseTime + min(parameters->m_repeatMinimumSustainT ime, m_animationTime - m_releaseTime - attackTimeLeft); 271 double minTimeLeft = m_releaseTime + std::min(parameters->m_repeatMinimumSus tainTime, m_animationTime - m_releaseTime - attackTimeLeft);
274 if (timeLeft < minTimeLeft) { 272 if (timeLeft < minTimeLeft) {
275 m_animationTime = deltaTime + minTimeLeft; 273 m_animationTime = deltaTime + minTimeLeft;
276 timeLeft = minTimeLeft; 274 timeLeft = minTimeLeft;
277 } 275 }
278 276
279 if (parameters->m_maximumCoastTime > (parameters->m_repeatMinimumSustainTime + parameters->m_releaseTime)) { 277 if (parameters->m_maximumCoastTime > (parameters->m_repeatMinimumSustainTime + parameters->m_releaseTime)) {
280 double targetMaxCoastVelocity = m_visibleLength * .25 * kFrameRate; 278 double targetMaxCoastVelocity = m_visibleLength * .25 * kFrameRate;
281 // This needs to be as minimal as possible while not being intrusive to page up/down. 279 // This needs to be as minimal as possible while not being intrusive to page up/down.
282 double minCoastDelta = m_visibleLength; 280 double minCoastDelta = m_visibleLength;
283 281
284 if (fabs(remainingDelta) > minCoastDelta) { 282 if (fabs(remainingDelta) > minCoastDelta) {
285 double maxCoastDelta = parameters->m_maximumCoastTime * targetMaxCoa stVelocity; 283 double maxCoastDelta = parameters->m_maximumCoastTime * targetMaxCoa stVelocity;
286 double coastFactor = min(1., (fabs(remainingDelta) - minCoastDelta) / (maxCoastDelta - minCoastDelta)); 284 double coastFactor = std::min(1., (fabs(remainingDelta) - minCoastDe lta) / (maxCoastDelta - minCoastDelta));
287 285
288 // We could play with the curve here - linear seems a little soft. I nitial testing makes me want to feed into the sustain time more aggressively. 286 // We could play with the curve here - linear seems a little soft. I nitial testing makes me want to feed into the sustain time more aggressively.
289 double coastMinTimeLeft = min(parameters->m_maximumCoastTime, minTim eLeft + coastCurve(parameters->m_coastTimeCurve, coastFactor) * (parameters->m_m aximumCoastTime - minTimeLeft)); 287 double coastMinTimeLeft = std::min(parameters->m_maximumCoastTime, m inTimeLeft + coastCurve(parameters->m_coastTimeCurve, coastFactor) * (parameters ->m_maximumCoastTime - minTimeLeft));
290 288
291 double additionalTime = max(0., coastMinTimeLeft - minTimeLeft); 289 double additionalTime = std::max(0., coastMinTimeLeft - minTimeLeft) ;
292 if (additionalTime) { 290 if (additionalTime) {
293 double additionalReleaseTime = min(additionalTime, parameters->m _releaseTime / (parameters->m_releaseTime + parameters->m_repeatMinimumSustainTi me) * additionalTime); 291 double additionalReleaseTime = std::min(additionalTime, paramete rs->m_releaseTime / (parameters->m_releaseTime + parameters->m_repeatMinimumSust ainTime) * additionalTime);
294 m_releaseTime = parameters->m_releaseTime + additionalReleaseTim e; 292 m_releaseTime = parameters->m_releaseTime + additionalReleaseTim e;
295 m_animationTime = deltaTime + coastMinTimeLeft; 293 m_animationTime = deltaTime + coastMinTimeLeft;
296 timeLeft = coastMinTimeLeft; 294 timeLeft = coastMinTimeLeft;
297 } 295 }
298 } 296 }
299 } 297 }
300 298
301 double releaseTimeLeft = min(timeLeft, m_releaseTime); 299 double releaseTimeLeft = std::min(timeLeft, m_releaseTime);
302 double sustainTimeLeft = max(0., timeLeft - releaseTimeLeft - attackTimeLeft ); 300 double sustainTimeLeft = std::max(0., timeLeft - releaseTimeLeft - attackTim eLeft);
303 301
304 if (attackTimeLeft) { 302 if (attackTimeLeft) {
305 double attackSpot = deltaTime / m_attackTime; 303 double attackSpot = deltaTime / m_attackTime;
306 attackAreaLeft = attackArea(m_attackCurve, attackSpot, 1) * m_attackTime ; 304 attackAreaLeft = attackArea(m_attackCurve, attackSpot, 1) * m_attackTime ;
307 } 305 }
308 306
309 double releaseSpot = (m_releaseTime - releaseTimeLeft) / m_releaseTime; 307 double releaseSpot = (m_releaseTime - releaseTimeLeft) / m_releaseTime;
310 double releaseAreaLeft = releaseArea(m_releaseCurve, releaseSpot, 1) * m_re leaseTime; 308 double releaseAreaLeft = releaseArea(m_releaseCurve, releaseSpot, 1) * m_re leaseTime;
311 309
312 m_desiredVelocity = remainingDelta / (attackAreaLeft + sustainTimeLeft + rel easeAreaLeft); 310 m_desiredVelocity = remainingDelta / (attackAreaLeft + sustainTimeLeft + rel easeAreaLeft);
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
518 return m_animationActive; 516 return m_animationActive;
519 } 517 }
520 518
521 void ScrollAnimatorNone::stopAnimationTimerIfNeeded() 519 void ScrollAnimatorNone::stopAnimationTimerIfNeeded()
522 { 520 {
523 if (animationTimerActive()) 521 if (animationTimerActive())
524 m_animationActive = false; 522 m_animationActive = false;
525 } 523 }
526 524
527 } // namespace blink 525 } // namespace blink
OLDNEW
« no previous file with comments | « Source/platform/scroll/ScrollAnimator.cpp ('k') | Source/platform/scroll/ScrollView.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698