blob: fe8873735bab3f288603bc6b85daa325ea77896f [file] [log] [blame]
<!DOCTYPE html>
<!--
* Copyright 2014 The Chromium OS Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
-->
<html>
<head>
<title>WebGL Clear Test</title>
<script type="text/javascript" src="tdl/base.js"></script>
<script type="text/javascript">
tdl.require('tdl.fps');
tdl.require('tdl.webgl');
window.onload = initialize;
var g_fpsTimer; // object to measure frames per second
function initialize() {
var then = 0.0;
var last = 0.0;
var fpsElem = document.getElementById('fps');
var canvas = document.getElementById('canvas');
var w = 1024;
var h = 1024;
canvas.width = w;
canvas.height = h;
tdl.fps.NUM_FRAMES_TO_AVERAGE = 120;
g_fpsTimer = new tdl.fps.FPSTimer();
gl = tdl.webgl.setupWebGL(canvas, {alpha:false,antialias:false});
if (!gl) {
return false;
}
gl.clearColor(
Math.random(), Math.random(), Math.random(), 1.0);
gl.viewport(0, 0, w, h);
function render() {
tdl.webgl.requestAnimationFrame(render, canvas);
var now = (new Date()).getTime();
var elapsedTime = 0.0;
if (then != 0.0) {
elapsedTime = now - then;
}
then = now;
g_fpsTimer.update(elapsedTime * 0.001);
fpsElem.innerHTML = g_fpsTimer.averageFPS;
// Regulate how often we change the clear color over time. If we
// were to change the color every frame then, depending on the
// FPS rate, this would potentially happen very very fast and is
// really irritating to watch. I'm not sure how much impact
// changing the color really has on performance, if any.
// Nonetheless, changing the color periodically gives us a
// visual cue that somethings actually happening.
if (now - last > 500) {
gl.clearColor(
Math.random(), Math.random(), Math.random(), 1.0);
last = now;
}
// Clear color and depth buffers
gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
}
render();
return true;
}
</script>
</head>
<body>
<div>fps: <span id="fps"></span></div>
<canvas id="canvas" width="1024" height="1024" style="width: 100%; height: 100%;"></canvas>
</body>
</html>