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

Unified Diff: chrome/test/data/perf/rendering/throughput/canvas2d_balls_common/bouncing_balls.js

Issue 124393006: Remove throughput_tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove change to window_snapshot.h Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/perf/rendering/throughput/canvas2d_balls_common/bouncing_balls.js
diff --git a/chrome/test/data/perf/rendering/throughput/canvas2d_balls_common/bouncing_balls.js b/chrome/test/data/perf/rendering/throughput/canvas2d_balls_common/bouncing_balls.js
deleted file mode 100644
index 89276b3fe03562f4d4f6676542d965111ec9c780..0000000000000000000000000000000000000000
--- a/chrome/test/data/perf/rendering/throughput/canvas2d_balls_common/bouncing_balls.js
+++ /dev/null
@@ -1,176 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// demo parameters
-// maybe overridden in test file
-var numBalls = parseInt(getArgValue('ball_count'));
-if (numBalls == 0 || isNaN(numBalls)) {
- numBalls = 500;
-}
-var ballDiameter = 30;
-var gravity = 0.5; //screen heights per second^2
-var maxInitVelocity = 0.2;
-var maxAngularVelocity = 5; // rad per second
-var elasticity = 0.7;
-var joltInterval = 1.5;
-
-// globals
-var balls = [];
-var canvasWidth;
-var canvasHeight;
-var borderX;
-var borderY;
-var timeOfLastJolt = 0;
-
-function include(filename) {
- var head = document.getElementsByTagName('head')[0];
- var script = document.createElement('script');
- script.src = filename;
- script.type = 'text/javascript';
- head.appendChild(script)
-}
-
-include("bouncing_balls_draw_ball_as_" + getArgValue('ball') + ".js");
-include("bouncing_balls_draw_back_as_" + getArgValue('back') + ".js");
-
-window.requestAnimFrame = (function(){
- return window.requestAnimationFrame ||
- window.webkitRequestAnimationFrame ||
- window.mozRequestAnimationFrame ||
- window.oRequestAnimationFrame ||
- window.msRequestAnimationFrame ||
- function( callback ){
- window.setTimeout(callback, 1000 / 60);
- };
-})();
-
-window.onload = init;
-
-function init(){
- handleResize();
- for (var i = 0; i < numBalls; i++) {
- balls.push(new Ball());
- }
- window.addEventListener("resize", handleResize, false);
- drawBallInit(ballDiameter); // externally defined
- window.requestAnimFrame(updateFrame);
-}
-
-function handleResize() {
- canvasWidth = window.innerWidth;
- canvasHeight = window.innerHeight;
- canvas.setAttribute('width', canvasWidth);
- canvas.setAttribute('height', canvasHeight);
- borderX = ballDiameter/canvasWidth;
- borderY = ballDiameter/canvasHeight;
- prepareBackground(); // externally defined
-}
-
-function updateFrame() {
- var now = new Date().getTime() / 1000;
- var jolt = false;
- if (now - timeOfLastJolt > joltInterval) {
- jolt = true;
- timeOfLastJolt = now;
- }
- drawBackground(); // externally defined
- for (var i = 0; i < numBalls; i++) {
- balls[i].step(jolt);
- }
- window.requestAnimFrame(updateFrame);
-}
-
-function Ball(){
- var x = borderX + Math.random()*(1-2*borderX);
- var y = borderY + Math.random()*(1-2*borderY);
- var angle = Math.PI * 2 * Math.random();
- var velocityY = Math.random()*maxInitVelocity*2 - maxInitVelocity;
- var velocityX = Math.random()*maxInitVelocity*2 - maxInitVelocity;
- var angularVelocity = Math.random()*maxAngularVelocity*2 -
- maxAngularVelocity;
- var previousFrameTime = new Date().getTime();
- var previousBounceTime = 0;
- var alive = true;
- function step(jolt) {
- var curTime = new Date().getTime();
- var timeStep = (curTime - previousFrameTime) / 1000;
- previousFrameTime = curTime;
-
- // handle balls that are no longer bouncing
- if (!alive) {
- if (jolt) {
- // If a jolt is applied, bump the rollong balls enough for them to
- // reach between 0.75x and 1x the height of the window
- velocityY = -Math.sqrt(2 * gravity * (1-2 * borderY) * (0.75 + 0.25 *
- Math.random()))
- velocityX = Math.random()*maxInitVelocity*2 - maxInitVelocity;
- angularVelocity = Math.random()*maxAngularVelocity*2 -
- maxAngularVelocity;
- alive = true;
- } else {
- // rolling on the ground
- angularVelocity = 2*velocityX*canvasWidth/ballDiameter;
- }
- }
-
- // Compute angular motion
- angle += timeStep*angularVelocity;
- // Compute horizontal motion
- var remainingTime = timeStep;
- var deltaX = velocityX*remainingTime;
- while ((x+deltaX) < borderX || (x+deltaX) > (1-borderX)){
- if ((x+deltaX) < borderX) {
- // left side bounce
- remainingTime -= (borderX - x)/velocityX;
- x = borderX;
- } else {
- // right side bounce
- remainingTime -= ((1-borderX) - x)/velocityX;
- x = 1 - borderX;
- }
- velocityX = -elasticity*velocityX;
- deltaX = velocityX*remainingTime;
- }
- x += deltaX;
-
- // Compute vertical motion
- remainingTime = timeStep;
- var deltaY = alive ? velocityY*timeStep+gravity*timeStep*timeStep/2 : 0;
- //Handle floor bounces
- //To make sure the floor is air tight, we must be able to process multiple
- //bounces per time step to avoid the "tunnel effect".
- while ((y + deltaY) > (1 - borderY) && alive) {
- // time to hit floor
- var c = y-(1-borderY);
- var b = velocityY;
- var a = gravity/2;
- // The greater root is always the right one
- var subStep = (-b + Math.sqrt(b*b-4*a*c))/(2*a);
- //velocity after floor hit
- velocityY = -elasticity*(velocityY + gravity*subStep);
- remainingTime -= subStep;
- var bounceTime = curTime - remainingTime;
- if (bounceTime - previousBounceTime < 0.005){
- // The number of iterations may not be finite within a timestep
- // with elasticity < 1. This is due to power series convergence.
- // To gard against hanging, we treat the ball as rolling on the ground
- // once time between bounces is less than 5ms
- alive = false;
- deltaY = 0;
- } else {
- deltaY = velocityY*remainingTime+gravity*remainingTime*remainingTime/2;
- }
- previousBounceTime = bounceTime;
- y = (1 - borderY);
- }
- y += deltaY;
- velocityY += gravity*remainingTime;
-
- drawBall(x * canvasWidth, y * canvasHeight, angle); // externally defined
- }
-
- return {
- step: step
- }
-}

Powered by Google App Engine
This is Rietveld 408576698